Skip to content

Commit

Permalink
ADD test
Browse files Browse the repository at this point in the history
  • Loading branch information
ndelangen committed Nov 21, 2019
1 parent df9a93a commit 2414287
Showing 1 changed file with 66 additions and 18 deletions.
84 changes: 66 additions & 18 deletions lib/core/src/server/presets.test.js
Expand Up @@ -19,11 +19,11 @@ jest.mock('@storybook/node-logger', () => ({

describe('presets', () => {
it('does not throw when there is no preset file', async () => {
const loadPresets = require.requireActual('./presets').default;
const getPresets = require.requireActual('./presets').default;
let presets;

async function testPresets() {
presets = wrapPreset(loadPresets());
presets = wrapPreset(getPresets());
await presets.webpack();
await presets.babel();
}
Expand All @@ -34,8 +34,8 @@ describe('presets', () => {
});

it('does not throw when presets are empty', async () => {
const loadPresets = require.requireActual('./presets').default;
const presets = wrapPreset(loadPresets([]));
const getPresets = require.requireActual('./presets').default;
const presets = wrapPreset(getPresets([]));

async function testPresets() {
await presets.webpack();
Expand All @@ -46,8 +46,8 @@ describe('presets', () => {
});

it('does not throw when preset can not be loaded', async () => {
const loadPresets = require.requireActual('./presets').default;
const presets = wrapPreset(loadPresets(['preset-foo']));
const getPresets = require.requireActual('./presets').default;
const presets = wrapPreset(getPresets(['preset-foo']));

async function testPresets() {
await presets.webpack();
Expand Down Expand Up @@ -79,8 +79,8 @@ describe('presets', () => {
foo: (exec, options) => exec.concat(`valar ${options.custom}`),
});

const loadPresets = require.requireActual('./presets').default;
const presets = loadPresets(['preset-foo', 'preset-got', 'preset-bar']);
const getPresets = require.requireActual('./presets').default;
const presets = getPresets(['preset-foo', 'preset-got', 'preset-bar']);

const result = await presets.apply('foo', []);

Expand All @@ -99,8 +99,8 @@ describe('presets', () => {
babel: mockPresetBarExtendBabel,
});

const loadPresets = require.requireActual('./presets').default;
const presets = wrapPreset(loadPresets(['preset-foo', 'preset-bar']));
const getPresets = require.requireActual('./presets').default;
const presets = wrapPreset(getPresets(['preset-foo', 'preset-bar']));

async function testPresets() {
await presets.webpack();
Expand All @@ -125,8 +125,8 @@ describe('presets', () => {
babel: mockPresetBarExtendBabel,
});

const loadPresets = require.requireActual('./presets').default;
const presets = wrapPreset(loadPresets([{ name: 'preset-foo' }, { name: 'preset-bar' }]));
const getPresets = require.requireActual('./presets').default;
const presets = wrapPreset(getPresets([{ name: 'preset-foo' }, { name: 'preset-bar' }]));

async function testPresets() {
await presets.webpack();
Expand All @@ -151,9 +151,9 @@ describe('presets', () => {
babel: mockPresetBarExtendBabel,
});

const loadPresets = require.requireActual('./presets').default;
const getPresets = require.requireActual('./presets').default;
const presets = wrapPreset(
loadPresets([
getPresets([
{ name: 'preset-foo', options: { foo: 1 } },
{ name: 'preset-bar', options: { bar: 'a' } },
])
Expand Down Expand Up @@ -182,9 +182,9 @@ describe('presets', () => {
babel: mockPresetBarExtendBabel,
});

const loadPresets = require.requireActual('./presets').default;
const getPresets = require.requireActual('./presets').default;
const presets = wrapPreset(
loadPresets(['preset-foo', { name: 'preset-bar', options: { bar: 'a' } }])
getPresets(['preset-foo', { name: 'preset-bar', options: { bar: 'a' } }])
);

async function testPresets() {
Expand All @@ -210,9 +210,9 @@ describe('presets', () => {
webpack: mockPresetBarExtendWebpack,
});

const loadPresets = require.requireActual('./presets').default;
const getPresets = require.requireActual('./presets').default;
const presets = wrapPreset(
loadPresets(['preset-foo', { name: 'preset-bar', options: { bar: 'a' } }])
getPresets(['preset-foo', { name: 'preset-bar', options: { bar: 'a' } }])
);

async function testPresets() {
Expand All @@ -226,6 +226,54 @@ describe('presets', () => {
expect(mockPresetBarExtendWebpack).toHaveBeenCalledWith(expect.anything(), { bar: 'a' });
});

it('allows for presets to export presets array', async () => {
const getPresets = require.requireActual('./presets').default;
const input = {};
const mockPresetBar = jest.fn(() => input);

mockPreset('preset-foo', {
presets: ['preset-bar'],
});

mockPreset('preset-bar', {
bar: mockPresetBar,
});

const presets = getPresets(['preset-foo']);

const output = await presets.apply('bar');

expect(mockPresetBar).toHaveBeenCalledWith(undefined, expect.any(Object));

expect(input).toBe(output);
});

it('allows for presets to export presets fn', async () => {
const getPresets = require.requireActual('./presets').default;
const input = {};
const storybookOptions = { a: 1 };
const presetOptions = { b: 2 };
const mockPresetBar = jest.fn(() => input);
const mockPresetFoo = jest.fn(() => ['preset-bar']);

mockPreset('preset-foo', {
presets: mockPresetFoo,
});

mockPreset('preset-bar', {
bar: mockPresetBar,
});

const presets = getPresets([{ name: 'preset-foo', options: { b: 2 } }], storybookOptions);

const output = await presets.apply('bar');

expect(mockPresetFoo).toHaveBeenCalledWith({ ...storybookOptions, ...presetOptions });
expect(mockPresetBar).toHaveBeenCalledWith(undefined, expect.any(Object));

expect(input).toBe(output);
});

afterEach(() => {
jest.resetModules();
});
Expand Down

0 comments on commit 2414287

Please sign in to comment.