mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-02 19:57:25 +02:00
46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
import path from 'path';
|
|
import loadConfig from '@lib/load/config';
|
|
|
|
describe('loadConfig', () => {
|
|
test('website with valid siteConfig', () => {
|
|
const siteDir = path.join(__dirname, '__fixtures__', 'simple-site');
|
|
const config = loadConfig(siteDir);
|
|
expect(config).toEqual({
|
|
baseUrl: '/',
|
|
organizationName: 'endiliey',
|
|
customDocsPath: 'docs',
|
|
docsUrl: 'docs',
|
|
projectName: 'hello',
|
|
tagline: 'Hello World',
|
|
title: 'Hello'
|
|
});
|
|
expect(config).not.toEqual({});
|
|
});
|
|
|
|
test('website with incomplete siteConfig', () => {
|
|
const siteDir = path.join(__dirname, '__fixtures__', 'bad-site');
|
|
expect(() => {
|
|
loadConfig(siteDir);
|
|
}).toThrowErrorMatchingInlineSnapshot(
|
|
`"tagline, organizationName, projectName fields are missing in siteConfig.js"`
|
|
);
|
|
});
|
|
|
|
test('website with useless field (wrong field) in siteConfig', () => {
|
|
const siteDir = path.join(__dirname, '__fixtures__', 'wrong-site');
|
|
expect(() => {
|
|
loadConfig(siteDir);
|
|
}).toThrowErrorMatchingInlineSnapshot(
|
|
`"useLessField fields are useless in siteConfig.js"`
|
|
);
|
|
});
|
|
|
|
test('website with no siteConfig', () => {
|
|
const siteDir = path.join(__dirname, '__fixtures__', 'nonExisting');
|
|
expect(() => {
|
|
loadConfig(siteDir);
|
|
}).toThrowErrorMatchingInlineSnapshot(
|
|
`"title, tagline, organizationName, projectName, baseUrl fields are missing in siteConfig.js"`
|
|
);
|
|
});
|
|
});
|