UNPKG

ms.macro

Version:

Convert various time formats to milliseconds at build time in Babel.

74 lines (60 loc) 1.93 kB
'use strict'; var _ava = require('ava'); var _ava2 = _interopRequireDefault(_ava); var _babelPluginMacros = require('babel-plugin-macros'); var _babelPluginMacros2 = _interopRequireDefault(_babelPluginMacros); var _babelCore = require('babel-core'); var _commonTags = require('common-tags'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const run = code => (0, _babelCore.transform)(code, { babelrc: false, plugins: [_babelPluginMacros2.default], filename: __filename }).code.trim(); { const expected = _commonTags.stripIndent` const ONE_DAY = 86400000; const TWO_DAYS = 172800000; `; (0, _ava2.default)('CallExpression', t => { const input = _commonTags.stripIndent` import ms from './ms.macro'; const ONE_DAY = ms('1 day'); const TWO_DAYS = ms('2 days'); `; const output = run(input); t.is(output, expected); }); (0, _ava2.default)('TaggedTemplateExpression', t => { const input = _commonTags.stripIndent` import ms from './ms.macro'; const ONE_DAY = ms\`1 day\`; const TWO_DAYS = ms\`2 days\`; `; const output = run(input); t.is(output, expected); }); } (0, _ava2.default)('CallExpression Error', t => { const input = _commonTags.stripIndent` import ms from './ms.macro'; const ONE_DAY = ms('1 da'); `; const error = t.throws(() => run(input)); t.is(error.message, `${__filename}: Invalid input given to ms.macro at line 2`); }); (0, _ava2.default)('Use ms and ms.macro together', t => { const input = _commonTags.stripIndent` import ms from 'ms'; import msm from './ms.macro'; const ONE_DAY = msm('1 day'); const str = ms(172800000); `; const expected = _commonTags.stripIndent` import ms from 'ms'; const ONE_DAY = 86400000; const str = ms(172800000); `; const output = run(input); t.is(output, expected); });