Home Reference Source Test Repository

test/index.js

import path from 'path'
import fs from 'fs'
import assert from 'assert'
import { transformFileSync } from 'babel-core'
import generate from "babel-generator"
import normalize from 'normalize-newline'

function trim(str) {
  return normalize(str.replace(/^\s+|\s+$/, ''));
}

describe('mocktail babel plugin', () => {
  const fixturesDir = path.resolve(__dirname, './fixtures');

  fs.readdirSync(fixturesDir).map((caseName) => {
    it(`should mock ${caseName.split('-').join(' ')}`, () => {
      const fixtureDir = path.join(fixturesDir, caseName);
      const actualPath = path.join(fixtureDir, 'actual.js');
      const actual = transformFileSync(actualPath, {
        "babelrc": false,
        "plugins": [ "../src" ],
      }).code;

      const expected = fs.readFileSync(
          path.join(fixtureDir, 'expected.js')
      ).toString();

      assert.equal(trim(actual), trim(expected));
    });
  });

});