UNPKG

zater-cep

Version:

ZAter cep correios e via cep

233 lines (212 loc) 7.47 kB
/* eslint-disable max-lines */ jest.mock('babel-plugin-check-es2015-constants', () => 'babel-plugin-check-es2015-constants'); jest.mock( 'babel-plugin-transform-es2015-modules-commonjs', () => 'babel-plugin-transform-es2015-modules-commonjs' ); jest.mock( 'babel-plugin-transform-es2015-arrow-functions', () => 'babel-plugin-transform-es2015-arrow-functions' ); jest.mock( 'babel-plugin-transform-es2015-function-name', () => 'babel-plugin-transform-es2015-function-name' ); jest.mock( 'babel-plugin-transform-exponentiation-operator', () => 'babel-plugin-transform-exponentiation-operator' ); jest.mock( 'babel-plugin-syntax-trailing-function-commas', () => 'babel-plugin-syntax-trailing-function-commas' ); jest.mock( 'babel-plugin-transform-async-to-generator', () => 'babel-plugin-transform-async-to-generator' ); jest.mock( 'babel-plugin-transform-object-rest-spread', () => 'babel-plugin-transform-object-rest-spread' ); jest.mock('babel-plugin-syntax-object-rest-spread', () => 'babel-plugin-syntax-object-rest-spread'); const pluginCheckConstants = require('babel-plugin-check-es2015-constants'); const pluginModulesCommonjs = require('babel-plugin-transform-es2015-modules-commonjs'); const pluginArrowFunctions = require('babel-plugin-transform-es2015-arrow-functions'); const pluginFunctionName = require('babel-plugin-transform-es2015-function-name'); const pluginExponentiationOperator = require('babel-plugin-transform-exponentiation-operator'); const pluginSyntaxTrailingFunctionCommas = require('babel-plugin-syntax-trailing-function-commas'); const pluginAsync = require('babel-plugin-transform-async-to-generator'); const pluginTransformObjectRestSpread = require('babel-plugin-transform-object-rest-spread'); const pluginSyntaxObjectRestSpread = require('babel-plugin-syntax-object-rest-spread'); const preset = require('./'); describe('options', () => { describe('target', () => { test('6.1 is not a valid target', () => { expect(() => preset(null, { target: '6.1' })).toThrow( "Preset latest-node 'target' option must one of 6, 6.5, 7, 7.6, 8, 8.3, current." ); }); ['6', '6.5', '7', '7.6', '8', '8.3', 6, 6.5, 7, 7.6, 8, 8.3, 'current'].forEach(target => { test(`${target} ${typeof target} is a valid target`, () => { expect(preset(null, { target })).toBeDefined(); }); }); }); describe('modules', () => { test('xx is not a valid modules option', () => { expect(() => preset(null, { target: 'current', modules: 'xx' })).toThrow( "Preset latest-node 'modules' option must be 'false' to indicate no modules\nor 'commonjs' (default)" ); }); ['commonjs', false].forEach(option => { test(`${option} is a valid modules option`, () => { expect(preset(null, { target: 'current', modules: option })).toBeDefined(); }); }); }); describe('loose', () => { test('xx is not a valid loose option', () => { expect(() => preset(null, { target: 'current', loose: 'xx' })).toThrow( "Preset latest-node 'loose' option must be a boolean." ); }); [true, false].forEach(option => { test(`${option} is a valid loose option`, () => { expect(preset(null, { target: 'current', loose: option })).toBeDefined(); }); }); }); describe('esnext', () => { test('xx is not a valid esnext option', () => { expect(() => preset(null, { target: 'current', esnext: 'xx' })).toThrow( "Preset latest-node 'esnext' option must be a boolean." ); }); [true, false].forEach(option => { test(`${option} is a valid esnext option`, () => { expect(preset(null, { target: 'current', esnext: option })).toBeDefined(); }); }); }); }); describe('plugins', () => { test('6', () => { expect(preset(null, { target: '6' })).toEqual({ plugins: [ pluginCheckConstants, [pluginModulesCommonjs, { loose: false }], pluginArrowFunctions, pluginFunctionName, pluginExponentiationOperator, pluginSyntaxTrailingFunctionCommas, pluginAsync, [pluginTransformObjectRestSpread, { useBuiltIns: true }], ], }); }); test('6 loose: false', () => { expect(preset(null, { target: '6', loose: false })).toEqual({ plugins: [ pluginCheckConstants, [pluginModulesCommonjs, { loose: false }], pluginArrowFunctions, pluginFunctionName, pluginExponentiationOperator, pluginSyntaxTrailingFunctionCommas, pluginAsync, [pluginTransformObjectRestSpread, { useBuiltIns: true }], ], }); }); test('6 loose: true', () => { expect(preset(null, { target: '6', loose: true })).toEqual({ plugins: [ pluginCheckConstants, [pluginModulesCommonjs, { loose: true }], pluginArrowFunctions, pluginFunctionName, pluginExponentiationOperator, pluginSyntaxTrailingFunctionCommas, pluginAsync, [pluginTransformObjectRestSpread, { useBuiltIns: true }], ], }); }); test('6 modules: false', () => { expect(preset(null, { target: '6', modules: false })).toEqual({ plugins: [ pluginCheckConstants, pluginArrowFunctions, pluginFunctionName, pluginExponentiationOperator, pluginSyntaxTrailingFunctionCommas, pluginAsync, [pluginTransformObjectRestSpread, { useBuiltIns: true }], ], }); }); test('6.5', () => { expect(preset(null, { target: '6.5' })).toEqual({ plugins: [ pluginCheckConstants, [pluginModulesCommonjs, { loose: false }], pluginExponentiationOperator, pluginSyntaxTrailingFunctionCommas, pluginAsync, [pluginTransformObjectRestSpread, { useBuiltIns: true }], ], }); }); test('7', () => { expect(preset(null, { target: '7' })).toEqual({ plugins: [ pluginCheckConstants, [pluginModulesCommonjs, { loose: false }], pluginSyntaxTrailingFunctionCommas, pluginAsync, [pluginTransformObjectRestSpread, { useBuiltIns: true }], ], }); }); test('7.6', () => { expect(preset(null, { target: '7.6' })).toEqual({ plugins: [ pluginCheckConstants, [pluginModulesCommonjs, { loose: false }], pluginSyntaxTrailingFunctionCommas, [pluginTransformObjectRestSpread, { useBuiltIns: true }], ], }); }); test('8', () => { expect(preset(null, { target: '8' })).toEqual({ plugins: [ pluginCheckConstants, [pluginModulesCommonjs, { loose: false }], pluginSyntaxTrailingFunctionCommas, [pluginTransformObjectRestSpread, { useBuiltIns: true }], ], }); }); describe('8.3', () => { test('default options', () => { expect(preset(null, { target: '8.3' })).toEqual({ plugins: [ pluginCheckConstants, [pluginModulesCommonjs, { loose: false }], pluginSyntaxTrailingFunctionCommas, pluginSyntaxObjectRestSpread, ], }); }); test('{ esnext: false }', () => { expect(preset(null, { target: '8.3', esnext: false })).toEqual({ plugins: [ pluginCheckConstants, [pluginModulesCommonjs, { loose: false }], pluginSyntaxTrailingFunctionCommas, ], }); }); }); });