mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-17 19:16:58 +02:00
Move Docusaurus 1 files into directory (#966)
* Move Docusaurus 1 into v1 directory * Update Circle CI commands for new v1 dir * Remove OC * Fix tests
This commit is contained in:
parent
9d4a5d5359
commit
f2927a9fc4
291 changed files with 7591 additions and 6532 deletions
115
v1/lib/__tests__/build-files.test.js
Normal file
115
v1/lib/__tests__/build-files.test.js
Normal file
|
@ -0,0 +1,115 @@
|
|||
/**
|
||||
* 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.
|
||||
*/
|
||||
|
||||
const filepath = require('filepath');
|
||||
const fm = require('front-matter');
|
||||
const fs = require('fs-extra');
|
||||
const glob = require('glob-promise');
|
||||
const rimraf = require('rimraf');
|
||||
const shell = require('shelljs');
|
||||
|
||||
const CWD = process.cwd();
|
||||
|
||||
const utils = require('../server/utils');
|
||||
|
||||
const siteConfig = require(`${CWD}/website/siteConfig.js`);
|
||||
const buildDir = `${CWD}/website/build`;
|
||||
const docsDir = `${CWD}/docs`;
|
||||
const staticCSSDir = `${CWD}/website/static/css`;
|
||||
|
||||
let inputMarkdownFiles = [];
|
||||
let inputAssetsFiles = [];
|
||||
let outputHTMLFiles = [];
|
||||
let outputAssetsFiles = [];
|
||||
|
||||
function generateSite() {
|
||||
shell.cd('website');
|
||||
shell.exec('yarn build', {silent: true});
|
||||
}
|
||||
|
||||
function clearBuildFolder() {
|
||||
return rimraf(buildDir);
|
||||
}
|
||||
|
||||
describe('Build files', () => {
|
||||
beforeEach(() => {
|
||||
shell.cd(CWD);
|
||||
});
|
||||
|
||||
beforeAll(() => {
|
||||
generateSite();
|
||||
return Promise.all([
|
||||
glob(`${docsDir}/**/*.md`),
|
||||
glob(`${buildDir}/${siteConfig.projectName}/docs/**/*.html`),
|
||||
glob(`${docsDir}/assets/*`),
|
||||
glob(`${buildDir}/${siteConfig.projectName}/img/*`),
|
||||
]).then(results => {
|
||||
[
|
||||
inputMarkdownFiles,
|
||||
outputHTMLFiles,
|
||||
inputAssetsFiles,
|
||||
outputAssetsFiles,
|
||||
] = results;
|
||||
});
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
clearBuildFolder();
|
||||
});
|
||||
|
||||
test('Build folder exists', () =>
|
||||
fs.stat(buildDir).then(status => {
|
||||
expect(status.isDirectory()).toBeTruthy();
|
||||
}));
|
||||
|
||||
test('Generated HTML for each Markdown resource', () => {
|
||||
const metadata = outputHTMLFiles.map(file =>
|
||||
filepath.create(file).basename(),
|
||||
);
|
||||
inputMarkdownFiles.forEach(file => {
|
||||
const data = fs.readFileSync(file, 'utf8');
|
||||
const frontmatter = fm(data);
|
||||
expect(metadata).toContain(`${frontmatter.attributes.id}.html`);
|
||||
});
|
||||
});
|
||||
|
||||
test('Generated table of contents', () => {
|
||||
outputHTMLFiles.forEach(file => {
|
||||
const fileContents = fs.readFileSync(file, 'utf8');
|
||||
expect(fileContents).not.toContain('<AUTOGENERATED_TABLE_OF_CONTENTS>');
|
||||
});
|
||||
});
|
||||
|
||||
test('Concatenated CSS files', async () => {
|
||||
const inputFiles = await glob(`${staticCSSDir}/*.css`);
|
||||
const combinedCSSFile = `${buildDir}/${
|
||||
siteConfig.projectName
|
||||
}/css/main.css`;
|
||||
const fileContents = await Promise.all(
|
||||
[combinedCSSFile, ...inputFiles].map(file => fs.readFile(file, 'utf8')),
|
||||
);
|
||||
|
||||
const [outputFileContent, ...inputFileContents] = fileContents;
|
||||
const minifiedCssFiles = await Promise.all(
|
||||
inputFileContents.map(utils.minifyCss),
|
||||
);
|
||||
|
||||
minifiedCssFiles.forEach(fileContent => {
|
||||
expect(outputFileContent).toContain(fileContent);
|
||||
});
|
||||
});
|
||||
|
||||
test('Copied assets from /docs/assets', () => {
|
||||
const metadata = outputAssetsFiles.map(file =>
|
||||
filepath.create(file).basename(),
|
||||
);
|
||||
inputAssetsFiles.forEach(file => {
|
||||
const path = filepath.create(file);
|
||||
expect(metadata).toContain(path.basename());
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue