text: import {HEADERS, HTTP_STATUS} from '../../../src/lib/constants';
  import {DOMAIN_SERVERS, PORT_SERVER_1, PORT_SERVER_2} from '../config.functional';
  import {generateSha} from '../lib/test.utils';
  import {DIST_TAGS} from "../../../src/lib/constants";
  
  export default function(server, server2) {
    const SCOPE = '@test/scoped';
    const PKG_VERSION = '1.0.0';
    const PKG_NAME = 'scoped';
  
    describe('test-scoped', () => {
      beforeAll(function() {
        return server.request({
          uri: '/@test%2fscoped',
          headers: {
            'content-type': HEADERS.JSON,
          },
          method: 'PUT',
          json: require('./scoped.json'),
        }).status(HTTP_STATUS.CREATED);
      });
  
      test('should publish scope package', () => {});
  
      describe('should get scoped packages tarball', () => {
        const uploadScopedTarBall = (server) => {
          return server.getTarball(SCOPE, `${PKG_NAME}-${PKG_VERSION}.tgz`)
            .status(HTTP_STATUS.OK)
            .then(function(body) {
              // not real sha due to utf8 conversion
              expect(generateSha(body)).toEqual('6e67b14e2c0e450b942e2bc8086b49e90f594790');
            });
        };
  
        test('should be a scoped tarball from server1', () => {
          return uploadScopedTarBall(server);
        });
  
        test('should be a scoped tarball from server2', () => {
          return uploadScopedTarBall(server2);
        });
  
      });
  
      describe('should retrieve scoped packages', () => {
        const testScopePackage = (server, port) => server.getPackage(SCOPE)
          .status(HTTP_STATUS.OK)
          .then(function(body) {
            expect(body.name).toBe(SCOPE);
            expect(body.versions[PKG_VERSION].name).toBe(SCOPE);
            expect(body.versions[PKG_VERSION].dist.tarball).toBe(
              `http://${DOMAIN_SERVERS}:${port}/@test%2fscoped/-/${PKG_NAME}-${PKG_VERSION}.tgz`);
            expect(body[DIST_TAGS]).toEqual({latest: PKG_VERSION});
          });
  
        test('scoped package on server1', () => testScopePackage(server, PORT_SERVER_1));
        test('scoped package on server2', () => testScopePackage(server2, PORT_SERVER_2));
      });
  
      describe('should retrieve a scoped packages under nginx', () => {
        test('should work nginx workaround', () => {
          return server2.request({
            uri: '/@test/scoped/1.0.0'
          }).status(HTTP_STATUS.OK)
           .then(function(body) {
             expect(body.name).toEqual(SCOPE);
             expect(body.dist.tarball).toEqual(
               `http://${DOMAIN_SERVERS}:${PORT_SERVER_2}/@test%2fscoped/-/${PKG_NAME}-${PKG_VERSION}.tgz`);
           });
        });
      });
    });
  }
  