diff --git a/packages/config-loader/src/schema/collect.test.ts b/packages/config-loader/src/schema/collect.test.ts index 1e5c3c2bc5..131c9253c2 100644 --- a/packages/config-loader/src/schema/collect.test.ts +++ b/packages/config-loader/src/schema/collect.test.ts @@ -17,6 +17,7 @@ import { createMockDirectory } from '@backstage/backend-test-utils'; import { collectConfigSchemas } from './collect'; import path from 'path'; +import { dependencies } from 'webpack'; // cwd must be restored const origDir = process.cwd(); @@ -68,6 +69,7 @@ describe('collectConfigSchemas', () => { { path: path.join('node_modules', 'a', 'package.json'), value: mockSchema, + packageName: 'a', }, ]); }); @@ -89,6 +91,7 @@ describe('collectConfigSchemas', () => { { path: path.join('root', 'package.json'), value: mockSchema, + packageName: 'root', }, ]); }); @@ -98,40 +101,29 @@ describe('collectConfigSchemas', () => { root: { 'package.json': JSON.stringify({ name: 'root', - configSchema: mockSchema, - dependencies: {}, + dependencies: { + '@backstage/backend-common': '1', + '@backstage/backend-defaults': '1', + }, + configSchema: { ...mockSchema, title: 'root' }, }), - node_modules: { - a: { + }, + node_modules: { + '@backstage': { + 'backend-common': { 'package.json': JSON.stringify({ - name: 'a', - dependencies: { - b: '0.0.0', - }, + name: '@backstage/backend-common', + version: '1', + configSchema: { ...mockSchema, title: 'backend-common' }, }), }, - b: { + 'backend-defaults': { 'package.json': JSON.stringify({ - name: 'a', - dependencies: { - b: '0.0.0', - }, + name: '@backstage/backend-defaults', + version: '1', + configSchema: { ...mockSchema, title: 'backend-defaults' }, }), }, - '@backstage': { - 'backend-common': { - 'package.json': JSON.stringify({ - name: '@backstage/backend-common', - configSchema: { ...mockSchema, title: 'backend-common' }, - }), - }, - 'backend-defaults': { - 'package.json': JSON.stringify({ - name: '@backstage/backend-defaults', - configSchema: { ...mockSchema, title: 'backend-defaults' }, - }), - }, - }, }, }, }); @@ -139,11 +131,22 @@ describe('collectConfigSchemas', () => { process.chdir(mockDir.path); await expect( - collectConfigSchemas([], [path.join('root', 'package.json')]), + collectConfigSchemas(['root'], [path.join('root', 'package.json')]), ).resolves.toEqual([ { path: path.join('root', 'package.json'), - value: mockSchema, + value: { ...mockSchema, title: 'root' }, + packageName: 'root', + }, + { + path: path.join( + 'node_modules', + '@backstage', + 'backend-defaults', + 'package.json', + ), + value: { ...mockSchema, title: 'backend-defaults' }, + packageName: '@backstage/backend-defaults', }, ]); }); @@ -214,18 +217,22 @@ describe('collectConfigSchemas', () => { { path: path.join('node_modules', 'b', 'package.json'), value: { ...mockSchema, title: 'b' }, + packageName: 'b', }, { path: path.join('node_modules', 'c1', 'package.json'), value: { ...mockSchema, title: 'c1' }, + packageName: 'c1', }, { path: path.join('node_modules', 'd1', 'package.json'), value: { ...mockSchema, title: 'd1' }, + packageName: 'd1', }, { path: path.join('root', 'package.json'), value: { ...mockSchema, title: 'root' }, + packageName: 'root', }, ]), ); @@ -268,10 +275,12 @@ describe('collectConfigSchemas', () => { { path: path.join('node_modules', 'a', 'package.json'), value: { ...mockSchema, title: 'inline' }, + packageName: 'a', }, { path: path.join('node_modules', 'b', 'schema.json'), value: { ...mockSchema, title: 'external' }, + packageName: 'b', }, { path: path.join('node_modules', 'c', 'schema.d.ts'), @@ -286,6 +295,7 @@ describe('collectConfigSchemas', () => { }, required: ['tsKey'], }, + packageName: 'c', }, ]), ); @@ -339,14 +349,17 @@ describe('collectConfigSchemas', () => { { path: path.join('node_modules', 'a', 'package.json'), value: mockSchema, + packageName: 'a', }, { path: path.join('node_modules', 'b', 'package.json'), value: { ...mockSchema, title: 'b' }, + packageName: 'b', }, { path: path.join('node_modules', 'c', 'package.json'), value: { ...mockSchema, title: 'c1' }, + packageName: 'c', }, { path: path.join( @@ -357,6 +370,7 @@ describe('collectConfigSchemas', () => { 'package.json', ), value: { ...mockSchema, title: 'c2' }, + packageName: 'c', }, ]), ); diff --git a/packages/config-loader/src/schema/collect.ts b/packages/config-loader/src/schema/collect.ts index bf0fb8dd05..eb788d1038 100644 --- a/packages/config-loader/src/schema/collect.ts +++ b/packages/config-loader/src/schema/collect.ts @@ -158,7 +158,6 @@ export async function collectConfigSchemas( .concat(tsSchemas) .filter( ({ packageName }, _, original) => - true || !( packageName === '@backstage/backend-common' && original.some(