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"; 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, require('../fixtures/package')(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 = require('../fixtures/package')(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)); }); }); }); }); }); }