verdaccio/test/functional/scenarios/gh29.ts

72 lines
2.1 KiB
TypeScript

import fs from 'fs';
import path from 'path';
import {TARBALL} from '../config.functional';
import {HTTP_STATUS} from "../../../src/lib/constants";
import {createTarballHash} from "../../../src/lib/crypto-utils";
import requirePackage from '../fixtures/package';
function readfile(filePath) {
const folder = path.join(__dirname , filePath);
return fs.readFileSync(folder);
}
const binary = '../fixtures/binary';
const pkgName = 'testpkg-gh29';
export default function (server, server2) {
describe('pkg-gh29 #1', () => {
test('downloading non-existent tarball #1 / srv2', () => {
return server2.getTarball(pkgName, TARBALL)
.status(HTTP_STATUS.NOT_FOUND)
.body_error(/no such package/);
});
});
describe('pkg-gh29 #2', () => {
beforeAll(function() {
return server.putPackage(pkgName, requirePackage(pkgName))
.status(HTTP_STATUS.CREATED)
.body_ok(/created new package/);
});
test('creating new package / srv1', () => {});
test('downloading non-existent tarball #2 / srv2', () => {
return server2.getTarball(pkgName, TARBALL)
.status(HTTP_STATUS.NOT_FOUND)
.body_error(/no such file available/);
});
describe('tarball', () => {
beforeAll(function() {
return server.putTarball(pkgName, TARBALL, readfile(binary))
.status(HTTP_STATUS.CREATED)
.body_ok(/.*/);
});
test('uploading new tarball / srv1', () => {});
describe('pkg version', () => {
beforeAll(function() {
const pkg = requirePackage(pkgName);
pkg.dist.shasum = createTarballHash().update(readfile(binary)).digest('hex');
return server.putVersion(pkgName, '0.0.1', pkg)
.status(HTTP_STATUS.CREATED)
.body_ok(/published/);
});
test('uploading new package version / srv1', () => {});
test('downloading newly created tarball / srv2', () => {
return server2.getTarball(pkgName, TARBALL)
.status(HTTP_STATUS.OK)
.then(function(body) {
expect(body).toEqual(readfile(binary));
});
});
});
});
});
}