mirror of
https://github.com/facebook/docusaurus.git
synced 2025-07-23 19:48:54 +02:00
65 lines
2.2 KiB
TypeScript
65 lines
2.2 KiB
TypeScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
import {jest} from '@jest/globals';
|
|
import path from 'path';
|
|
import fs from 'fs-extra';
|
|
import {posixPath} from '@docusaurus/utils';
|
|
import {migrateDocusaurusProject} from '../index';
|
|
|
|
async function testMigration(siteDir: string, newDir: string) {
|
|
const writeMock = jest.spyOn(fs, 'outputFile').mockImplementation(() => {});
|
|
const mkdirpMock = jest.spyOn(fs, 'mkdirp').mockImplementation(() => {});
|
|
const mkdirsMock = jest.spyOn(fs, 'mkdirs').mockImplementation(() => {});
|
|
const copyMock = jest.spyOn(fs, 'copy').mockImplementation(() => {});
|
|
await migrateDocusaurusProject(siteDir, newDir, true, true);
|
|
expect(
|
|
writeMock.mock.calls.sort((a, b) =>
|
|
posixPath(a[0]).localeCompare(posixPath(b[0])),
|
|
),
|
|
).toMatchSnapshot('write');
|
|
expect(
|
|
mkdirpMock.mock.calls.sort((a, b) =>
|
|
posixPath(a[0]).localeCompare(posixPath(b[0])),
|
|
),
|
|
).toMatchSnapshot('mkdirp');
|
|
expect(
|
|
mkdirsMock.mock.calls.sort((a, b) =>
|
|
posixPath(a[0]).localeCompare(posixPath(b[0])),
|
|
),
|
|
).toMatchSnapshot('mkdirs');
|
|
expect(
|
|
copyMock.mock.calls.sort((a, b) =>
|
|
posixPath(a[0]).localeCompare(posixPath(b[0])),
|
|
),
|
|
).toMatchSnapshot('copy');
|
|
writeMock.mockRestore();
|
|
mkdirpMock.mockRestore();
|
|
mkdirsMock.mockRestore();
|
|
copyMock.mockRestore();
|
|
}
|
|
|
|
describe('migration CLI', () => {
|
|
const fixtureDir = path.join(__dirname, '__fixtures__');
|
|
it('migrates simple website', async () => {
|
|
const siteDir = path.join(fixtureDir, 'simple_website', 'website');
|
|
const newDir = path.join(fixtureDir, 'migrated_simple_site');
|
|
await testMigration(siteDir, newDir);
|
|
});
|
|
|
|
it('migrates complex website', async () => {
|
|
const siteDir = path.join(fixtureDir, 'complex_website', 'website');
|
|
const newDir = path.join(fixtureDir, 'migrated_complex_site');
|
|
await testMigration(siteDir, newDir);
|
|
});
|
|
|
|
it('migrates missing versions', async () => {
|
|
const siteDir = path.join(fixtureDir, 'missing_version_website', 'website');
|
|
const newDir = path.join(fixtureDir, 'migrated_missing_version_site');
|
|
await testMigration(siteDir, newDir);
|
|
});
|
|
});
|