Address PR review comments

- Remove cli-node/src/paths.ts compat layer, migrate all cli-node
  internal usage to import targetPaths from @backstage/cli-common
- Use single-arg overrideTargetPaths('/root') where dir === rootDir
- Scope mockDir to each describe block in bump.test.ts to avoid
  shared state issues with overrideTargetPaths
- Remove unnecessary overrideTargetPaths from plugin-manager.test.ts
- Remove stale findPaths mock from createApp.test.ts
- Use overrideTargetPaths in getWorkspaceRoot.test.ts and cli-node tests

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Patrik Oldsberg
2026-02-23 21:01:27 +01:00
parent ebc01ef04d
commit 641d88cb07
15 changed files with 40 additions and 118 deletions
@@ -18,7 +18,7 @@ import { PackageGraph } from '@backstage/cli-node';
import { findTargetPackages } from './start';
import { overrideTargetPaths } from '@backstage/cli-common/testUtils';
overrideTargetPaths({ dir: '/root', rootDir: '/root' });
overrideTargetPaths('/root');
const mocks = {
app: {
@@ -23,10 +23,7 @@ import { YarnInfoInspectData } from '../../../../lib/versioning/packages';
import { setupServer } from 'msw/node';
import { rest } from 'msw';
import { NotFoundError } from '@backstage/errors';
import {
createMockDirectory,
MockDirectory,
} from '@backstage/backend-test-utils';
import { createMockDirectory } from '@backstage/backend-test-utils';
// Avoid mutating the global agents used in other tests
jest.mock('global-agent', () => ({
@@ -60,17 +57,10 @@ jest.mock('ora', () => ({
},
}));
let mockDir: MockDirectory;
jest.mock('@backstage/cli-common', () => {
const actual = jest.requireActual('@backstage/cli-common');
return {
...actual,
findPaths: () => ({
resolveTargetRoot: (...args: string[]) => mockDir.resolve(...args),
get targetDir() {
return mockDir.path;
},
}),
run: jest.fn().mockReturnValue({
exitCode: null,
waitForExit: jest.fn().mockResolvedValue(undefined),
@@ -137,10 +127,10 @@ const expectLogsToMatch = (
};
describe('bump', () => {
mockDir = createMockDirectory();
beforeAll(() => overrideTargetPaths(mockDir.path));
const mockDir = createMockDirectory();
beforeEach(() => {
overrideTargetPaths(mockDir.path);
mockFetchPackageInfo.mockImplementation(async name => ({
name: name,
'dist-tags': {
@@ -944,8 +934,11 @@ describe('bump', () => {
});
describe('bumpBackstageJsonVersion', () => {
mockDir = createMockDirectory();
beforeAll(() => overrideTargetPaths(mockDir.path));
const mockDir = createMockDirectory();
beforeEach(() => {
overrideTargetPaths(mockDir.path);
});
afterEach(() => {
jest.resetAllMocks();
@@ -1079,10 +1072,14 @@ describe('createVersionFinder', () => {
});
describe('environment variables', () => {
const mockDir = createMockDirectory();
const worker = setupServer();
registerMswTestHooks(worker);
beforeAll(() => overrideTargetPaths(mockDir.path));
beforeEach(() => {
overrideTargetPaths(mockDir.path);
});
beforeEach(() => {
delete process.env.BACKSTAGE_MANIFEST_FILE;