cli: use common testing utils for create factory tests

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2021-11-13 12:36:47 +01:00
parent 7b8f19492e
commit 823a097b3b
3 changed files with 12 additions and 71 deletions
@@ -16,35 +16,17 @@
import fs from 'fs-extra';
import mockFs from 'mock-fs';
import { resolve as resolvePath } from 'path';
import { WriteStream } from 'tty';
import { paths } from '../../paths';
import { Task } from '../../tasks';
import { FactoryRegistry } from '../FactoryRegistry';
import { createMockOutputStream, mockPaths } from './common/testUtils';
import { backendPlugin } from './backendPlugin';
function createMockOutputStream() {
const output = new Array<string>();
return [
output,
{
cursorTo: () => {},
clearLine: () => {},
moveCursor: () => {},
write: (msg: string) =>
// Clean up colors and whitespace
// eslint-disable-next-line no-control-regex
output.push(msg.replace(/\x1B\[\d\dm/g, '').trim()),
} as unknown as WriteStream & { fd: any },
] as const;
}
describe('backendPlugin factory', () => {
beforeEach(() => {
jest.spyOn(paths, 'targetRoot', 'get').mockReturnValue('/root');
jest
.spyOn(paths, 'resolveTargetRoot')
.mockImplementation((...ps) => resolvePath('/root', ...ps));
mockPaths({
targetRoot: '/root',
});
});
afterEach(() => {
@@ -16,29 +16,12 @@
import fs from 'fs-extra';
import mockFs from 'mock-fs';
import { resolve as resolvePath } from 'path';
import { WriteStream } from 'tty';
import { paths } from '../../paths';
import { Task } from '../../tasks';
import { FactoryRegistry } from '../FactoryRegistry';
import { createMockOutputStream, mockPaths } from './common/testUtils';
import { frontendPlugin } from './frontendPlugin';
function createMockOutputStream() {
const output = new Array<string>();
return [
output,
{
cursorTo: () => {},
clearLine: () => {},
moveCursor: () => {},
write: (msg: string) =>
// Clean up colors and whitespace
// eslint-disable-next-line no-control-regex
output.push(msg.replace(/\x1B\[\d\dm/g, '').trim()),
} as unknown as WriteStream & { fd: any },
] as const;
}
const appTsxContent = `
import { createApp } from '@backstage/app-defaults';
@@ -51,10 +34,9 @@ const router = (
describe('frontendPlugin factory', () => {
beforeEach(() => {
jest.spyOn(paths, 'targetRoot', 'get').mockReturnValue('/root');
jest
.spyOn(paths, 'resolveTargetRoot')
.mockImplementation((...ps) => resolvePath('/root', ...ps));
mockPaths({
targetRoot: '/root',
});
});
afterEach(() => {
@@ -16,40 +16,17 @@
import fs from 'fs-extra';
import mockFs from 'mock-fs';
import { resolve as resolvePath } from 'path';
import { WriteStream } from 'tty';
import { paths } from '../../paths';
import { Task } from '../../tasks';
import { FactoryRegistry } from '../FactoryRegistry';
import { createMockOutputStream, mockPaths } from './common/testUtils';
import { pluginCommon } from './pluginCommon';
function createMockOutputStream() {
const output = new Array<string>();
return [
output,
{
cursorTo: () => {},
clearLine: () => {},
moveCursor: () => {},
write: (msg: string) =>
// Clean up colors and whitespace
// eslint-disable-next-line no-control-regex
output.push(msg.replace(/\x1B\[\d\dm/g, '').trim()),
} as unknown as WriteStream & { fd: any },
] as const;
}
describe('pluginCommon factory', () => {
beforeEach(() => {
jest.spyOn(paths, 'targetRoot', 'get').mockReturnValue('/root');
jest
.spyOn(paths, 'resolveTargetRoot')
.mockImplementation((...ps) => resolvePath('/root', ...ps));
});
afterEach(() => {
mockFs.restore();
jest.resetAllMocks();
mockPaths({
targetRoot: '/root',
});
});
it('should create a common plugin package', async () => {