• Joe Haddad's avatar
    Run behavioral smoke tests with Jest, add output tests (#5150) · 2a7346e0
    Joe Haddad authored
    * Run smoke tests with Jest
    
    * Get a unique port for smoke test
    
    * Upgrade verdaccio across the board
    
    * Drop unneeded step
    
    * Try latest instead
    
    * Boot registry in home directory
    
    * Correct config path
    
    * Add mutex
    
    * Test webpack message formatting
    
    * Strip color
    
    * Add browserslist to default
    
    * Disable another broken feature
    Unverified
    2a7346e0
index.test.js 2.63 KiB
const { bootstrap, getOutputProduction } = require('../../utils');
const fs = require('fs-extra');
const path = require('path');
const Semaphore = require('async-sema');
const tempy = require('tempy');
describe('webpack message formatting', () => {
  const semaphore = new Semaphore(1, { capacity: Infinity });
  let testDirectory;
  beforeAll(async () => {
    testDirectory = tempy.directory();
    await bootstrap({ directory: testDirectory, template: __dirname });
  });
  beforeEach(async () => {
    await semaphore.acquire();
  });
  afterEach(async () => {
    fs.removeSync(path.join(testDirectory, 'src', 'App.js'));
    semaphore.release();
  });
  it('formats babel syntax error', async () => {
    fs.copySync(
      path.join(__dirname, 'src', 'AppBabel.js'),
      path.join(testDirectory, 'src', 'App.js')
    const response = await getOutputProduction({ directory: testDirectory });
    expect(response).toMatchSnapshot();
  });
  xit('formats css syntax error', async () => {
    // TODO: fix me!
    fs.copySync(
      path.join(__dirname, 'src', 'AppCss.js'),
      path.join(testDirectory, 'src', 'App.js')
    const response = await getOutputProduction({ directory: testDirectory });
    expect(response).toMatchSnapshot();
  });
  xit('formats unknown export', async () => {
    // TODO: fix me!
    fs.copySync(
      path.join(__dirname, 'src', 'AppUnknownExport.js'),
      path.join(testDirectory, 'src', 'App.js')
    const response = await getOutputProduction({ directory: testDirectory });
    expect(response).toMatchSnapshot();
  });
  xit('formats missing package', async () => {
    // TODO: fix me!
    fs.copySync(
      path.join(__dirname, 'src', 'AppMissingPackage.js'),
      path.join(testDirectory, 'src', 'App.js')
    const response = await getOutputProduction({ directory: testDirectory });
    expect(response).toMatchSnapshot();
  });
  it('formats eslint warning', async () => {
    fs.copySync(
      path.join(__dirname, 'src', 'AppLintWarning.js'),
      path.join(testDirectory, 'src', 'App.js')
71727374757677787980818283848586878889
const response = await getOutputProduction({ directory: testDirectory }); const sizeIndex = response.stdout.indexOf('File sizes after gzip'); if (sizeIndex !== -1) { response.stdout = response.stdout.substring(0, sizeIndex); } expect(response).toMatchSnapshot(); }); it('formats eslint error', async () => { fs.copySync( path.join(__dirname, 'src', 'AppLintError.js'), path.join(testDirectory, 'src', 'App.js') ); const response = await getOutputProduction({ directory: testDirectory }); expect(response).toMatchSnapshot(); }); });