docusaurus/v2/test/load/env.test.js
Endilie Yacop Sucipto 85336649d3
feat(v2): headerlinks (#1074)
* feat(v2): headerlinks

* fix test

* nits

* remove tictactoe:

* headerIcon

* nits

* remove lang dropdown

* fix failing test

* search box

* algolia search

* use babel-eslint to resolve dynamic import

* nits

* favicon and title

* Update .eslintignore
2018-10-28 16:32:19 +08:00

106 lines
3.2 KiB
JavaScript

/**
* Copyright (c) 2017-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import path from 'path';
import loadEnv from '@lib/load/env';
import loadSetup from '../loadSetup';
describe('loadEnv', () => {
test('website with both versioning & translation disabled', async () => {
const {siteDir} = await loadSetup('simple');
const siteConfig = {
baseUrl: '/',
organizationName: 'endiliey',
projectName: 'hello',
tagline: 'Hello World',
title: 'Hello',
};
const env = loadEnv({siteDir, siteConfig});
expect(env.versioning.enabled).toBe(false);
expect(env.translation.enabled).toBe(false);
expect(env).toMatchSnapshot();
});
test('website with versioning enabled', async () => {
const {siteDir} = await loadSetup('versioned');
const siteConfig = {
baseUrl: '/',
organizationName: 'endiliey',
projectName: 'hello',
tagline: 'Hello World',
title: 'Hello',
};
const env = loadEnv({siteDir, siteConfig});
expect(env.versioning.enabled).toBe(true);
expect(env.translation.enabled).toBe(false);
expect(env).toMatchSnapshot();
});
test('website with translation enabled', async () => {
const {siteDir} = await loadSetup('translated');
const siteConfig = {
baseUrl: '/',
organizationName: 'endiliey',
projectName: 'hello',
tagline: 'Hello World',
title: 'Hello',
defaultLanguage: 'en',
};
const env = loadEnv({siteDir, siteConfig});
expect(env.versioning.enabled).toBe(false);
expect(env.translation.enabled).toBe(true);
expect(env).toMatchSnapshot();
});
test('website with versioning & translation enabled', async () => {
const {siteDir} = await loadSetup('transversioned');
const siteConfig = {
baseUrl: '/',
organizationName: 'endiliey',
projectName: 'hello',
tagline: 'Hello World',
title: 'Hello',
defaultLanguage: 'en',
};
const env = loadEnv({siteDir, siteConfig});
expect(env.versioning.enabled).toBe(true);
expect(env.translation.enabled).toBe(true);
expect(env).toMatchSnapshot();
});
test('website with languages.js but no lang is enabled', () => {
const siteDir = path.join(__dirname, '__fixtures__', 'bad-site');
const siteConfig = {
baseUrl: '/',
organizationName: 'endiliey',
projectName: 'hello',
tagline: 'Hello World',
title: 'Hello',
};
expect(() => {
loadEnv({siteDir, siteConfig});
}).toThrowErrorMatchingInlineSnapshot(
`"Please at least enable one language in 'languages.js'"`,
);
});
test('website with languages.js but no default language set', async () => {
const {siteDir} = await loadSetup('translated');
const siteConfig = {
baseUrl: '/',
organizationName: 'endiliey',
projectName: 'hello',
tagline: 'Hello World',
title: 'Hello',
};
expect(() => {
loadEnv({siteDir, siteConfig});
}).toThrowErrorMatchingInlineSnapshot(
`"Please set a default language in 'siteConfig.js' which is enabled in 'languages.js'"`,
);
});
});