refactor: stop using getVoidLogger in tests
Signed-off-by: Camila Belo <camilaibs@gmail.com>
This commit is contained in:
+5
-5
@@ -14,12 +14,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { BackendLifecycleImpl } from './rootLifecycleServiceFactory';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
describe('lifecycleService', () => {
|
||||
it('should execute registered shutdown hook', async () => {
|
||||
const service = new BackendLifecycleImpl(getVoidLogger());
|
||||
const service = new BackendLifecycleImpl(mockServices.logger.mock());
|
||||
const hook = jest.fn();
|
||||
service.addShutdownHook(() => hook());
|
||||
// should not execute the hook more than once.
|
||||
@@ -30,7 +30,7 @@ describe('lifecycleService', () => {
|
||||
});
|
||||
|
||||
it('should not throw errors', async () => {
|
||||
const service = new BackendLifecycleImpl(getVoidLogger());
|
||||
const service = new BackendLifecycleImpl(mockServices.logger.mock());
|
||||
service.addShutdownHook(() => {
|
||||
throw new Error('oh no');
|
||||
});
|
||||
@@ -38,7 +38,7 @@ describe('lifecycleService', () => {
|
||||
});
|
||||
|
||||
it('should not throw async errors', async () => {
|
||||
const service = new BackendLifecycleImpl(getVoidLogger());
|
||||
const service = new BackendLifecycleImpl(mockServices.logger.mock());
|
||||
service.addShutdownHook(async () => {
|
||||
throw new Error('oh no');
|
||||
});
|
||||
@@ -46,7 +46,7 @@ describe('lifecycleService', () => {
|
||||
});
|
||||
|
||||
it('should reject hooks after trigger', async () => {
|
||||
const service = new BackendLifecycleImpl(getVoidLogger());
|
||||
const service = new BackendLifecycleImpl(mockServices.logger.mock());
|
||||
await service.startup();
|
||||
expect(() => {
|
||||
service.addStartupHook(() => {});
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { JsonObject } from '@backstage/types';
|
||||
import { getVoidLogger } from '../logging';
|
||||
import { DefaultReadTreeResponseFactory } from './tree';
|
||||
import { AwsCodeCommitUrlReader, parseUrl } from './AwsCodeCommitUrlReader';
|
||||
import { UrlReaderPredicateTuple } from './types';
|
||||
@@ -34,6 +33,7 @@ import {
|
||||
AwsCodeCommitIntegration,
|
||||
readAwsCodeCommitIntegrationConfig,
|
||||
} from '@backstage/integration';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
const AMAZON_AWS_CODECOMMIT_HOST = 'console.aws.amazon.com';
|
||||
|
||||
@@ -202,7 +202,7 @@ describe('AwsCodeCommitUrlReader', () => {
|
||||
const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => {
|
||||
return AwsCodeCommitUrlReader.factory({
|
||||
config: new ConfigReader(config),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
treeResponseFactory,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { JsonObject } from '@backstage/types';
|
||||
import { getVoidLogger } from '../logging';
|
||||
import { DefaultReadTreeResponseFactory } from './tree';
|
||||
import { DEFAULT_REGION, AwsS3UrlReader, parseUrl } from './AwsS3UrlReader';
|
||||
import {
|
||||
@@ -37,6 +36,7 @@ import {
|
||||
} from '@aws-sdk/client-s3';
|
||||
import { sdkStreamMixin } from '@aws-sdk/util-stream-node';
|
||||
import fs from 'fs';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
const treeResponseFactory = DefaultReadTreeResponseFactory.create({
|
||||
config: new ConfigReader({}),
|
||||
@@ -166,7 +166,7 @@ describe('AwsS3UrlReader', () => {
|
||||
const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => {
|
||||
return AwsS3UrlReader.factory({
|
||||
config: new ConfigReader(config),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
treeResponseFactory,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -25,6 +25,7 @@ import {
|
||||
} from '@backstage/integration';
|
||||
import {
|
||||
createMockDirectory,
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import fs from 'fs-extra';
|
||||
@@ -32,7 +33,6 @@ import { rest } from 'msw';
|
||||
import { setupServer } from 'msw/node';
|
||||
import path from 'path';
|
||||
import { NotModifiedError } from '@backstage/errors';
|
||||
import { getVoidLogger } from '../logging';
|
||||
import { AzureUrlReader } from './AzureUrlReader';
|
||||
import { DefaultReadTreeResponseFactory } from './tree';
|
||||
|
||||
@@ -42,7 +42,7 @@ type AzureIntegrationConfigLike = Partial<
|
||||
credentials?: Partial<AzureDevOpsCredentialLike>[];
|
||||
};
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
const mockDir = createMockDirectory({ mockOsTmpDir: true });
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import {
|
||||
} from '@backstage/integration';
|
||||
import {
|
||||
createMockDirectory,
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import fs from 'fs-extra';
|
||||
@@ -30,10 +31,9 @@ import path from 'path';
|
||||
import { NotModifiedError } from '@backstage/errors';
|
||||
import { BitbucketUrlReader } from './BitbucketUrlReader';
|
||||
import { DefaultReadTreeResponseFactory } from './tree';
|
||||
import { getVoidLogger } from '../logging';
|
||||
import getRawBody from 'raw-body';
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
describe('BitbucketUrlReader.factory', () => {
|
||||
it('only apply integration configs not inherited from bitbucketCloud or bitbucketServer', () => {
|
||||
|
||||
@@ -16,10 +16,12 @@
|
||||
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { NotFoundError, NotModifiedError } from '@backstage/errors';
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { rest } from 'msw';
|
||||
import { setupServer } from 'msw/node';
|
||||
import { getVoidLogger } from '../logging';
|
||||
import { FetchUrlReader } from './FetchUrlReader';
|
||||
import { DefaultReadTreeResponseFactory } from './tree';
|
||||
|
||||
@@ -105,7 +107,7 @@ describe('FetchUrlReader', () => {
|
||||
},
|
||||
},
|
||||
}),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
treeResponseFactory: DefaultReadTreeResponseFactory.create({
|
||||
config: new ConfigReader({}),
|
||||
}),
|
||||
@@ -155,7 +157,7 @@ describe('FetchUrlReader', () => {
|
||||
},
|
||||
},
|
||||
}),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
treeResponseFactory: DefaultReadTreeResponseFactory.create({
|
||||
config: new ConfigReader({}),
|
||||
}),
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
import {
|
||||
createMockDirectory,
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
@@ -29,7 +30,6 @@ import { rest } from 'msw';
|
||||
import { setupServer } from 'msw/node';
|
||||
import fs from 'fs-extra';
|
||||
import path from 'path';
|
||||
import { getVoidLogger } from '../logging';
|
||||
import { UrlReaderPredicateTuple } from './types';
|
||||
import { DefaultReadTreeResponseFactory } from './tree';
|
||||
import {
|
||||
@@ -86,7 +86,7 @@ const gerritProcessorWithGitiles = new GerritUrlReader(
|
||||
const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => {
|
||||
return GerritUrlReader.factory({
|
||||
config: new ConfigReader(config),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
treeResponseFactory,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -14,13 +14,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { GiteaIntegration, readGiteaConfig } from '@backstage/integration';
|
||||
import { JsonObject } from '@backstage/types';
|
||||
import { rest } from 'msw';
|
||||
import { setupServer } from 'msw/node';
|
||||
import { getVoidLogger } from '../logging';
|
||||
import { UrlReaderPredicateTuple } from './types';
|
||||
import { DefaultReadTreeResponseFactory } from './tree';
|
||||
import getRawBody from 'raw-body';
|
||||
@@ -55,7 +57,7 @@ const giteaProcessor = new GiteaUrlReader(
|
||||
const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => {
|
||||
return GiteaUrlReader.factory({
|
||||
config: new ConfigReader(config),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
treeResponseFactory,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import {
|
||||
createMockDirectory,
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import fs from 'fs-extra';
|
||||
import { rest } from 'msw';
|
||||
import { setupServer } from 'msw/node';
|
||||
import path from 'path';
|
||||
import { getVoidLogger } from '../logging';
|
||||
import { GitlabUrlReader } from './GitlabUrlReader';
|
||||
import { DefaultReadTreeResponseFactory } from './tree';
|
||||
import { NotModifiedError, NotFoundError } from '@backstage/errors';
|
||||
@@ -32,7 +32,7 @@ import {
|
||||
readGitLabIntegrationConfig,
|
||||
} from '@backstage/integration';
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
const mockDir = createMockDirectory({ mockOsTmpDir: true });
|
||||
|
||||
|
||||
@@ -16,11 +16,11 @@
|
||||
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { JsonObject } from '@backstage/types';
|
||||
import { getVoidLogger } from '../logging';
|
||||
import { DefaultReadTreeResponseFactory } from './tree';
|
||||
import { GoogleGcsUrlReader } from './GoogleGcsUrlReader';
|
||||
import { UrlReaderPredicateTuple } from './types';
|
||||
import packageinfo from '../../package.json';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
const bucketGetFilesMock = jest.fn();
|
||||
jest.mock('@google-cloud/storage', () => {
|
||||
@@ -44,7 +44,7 @@ describe('GcsUrlReader', () => {
|
||||
const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => {
|
||||
return GoogleGcsUrlReader.factory({
|
||||
config: new ConfigReader(config),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
treeResponseFactory: DefaultReadTreeResponseFactory.create({
|
||||
config: new ConfigReader({}),
|
||||
}),
|
||||
|
||||
@@ -14,13 +14,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { HarnessIntegration, readHarnessConfig } from '@backstage/integration';
|
||||
import { JsonObject } from '@backstage/types';
|
||||
import { rest } from 'msw';
|
||||
import { setupServer } from 'msw/node';
|
||||
import { getVoidLogger } from '../logging';
|
||||
import { UrlReaderPredicateTuple } from './types';
|
||||
import { DefaultReadTreeResponseFactory } from './tree';
|
||||
import getRawBody from 'raw-body';
|
||||
@@ -52,7 +54,7 @@ const harnessProcessor = new HarnessUrlReader(
|
||||
const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => {
|
||||
return HarnessUrlReader.factory({
|
||||
config: new ConfigReader(config),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
treeResponseFactory,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -16,17 +16,17 @@
|
||||
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import * as jose from 'jose';
|
||||
import { getVoidLogger } from '../logging';
|
||||
import { ServerTokenManager } from './ServerTokenManager';
|
||||
import { TokenManager } from './types';
|
||||
import { DateTime } from 'luxon';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
const emptyConfig = new ConfigReader({});
|
||||
const configWithSecret = new ConfigReader({
|
||||
backend: { auth: { keys: [{ secret: 'a-secret-key' }] } },
|
||||
});
|
||||
const env = process.env;
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
describe('ServerTokenManager', () => {
|
||||
beforeEach(() => {
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { LocalTaskWorker } from './LocalTaskWorker';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
describe('LocalTaskWorker', () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
it('runs the happy path (with iso duration) and handles cancellation', async () => {
|
||||
const fn = jest.fn();
|
||||
|
||||
@@ -14,8 +14,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { TestDatabaseId, TestDatabases } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
TestDatabaseId,
|
||||
TestDatabases,
|
||||
mockServices,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { ConflictError, NotFoundError } from '@backstage/errors';
|
||||
import { Duration } from 'luxon';
|
||||
import { migrateBackendTasks } from '../database/migrateBackendTasks';
|
||||
@@ -51,10 +54,8 @@ describe('PluginTaskManagerImpl', () => {
|
||||
async function init(databaseId: TestDatabaseId) {
|
||||
const knex = await databases.init(databaseId);
|
||||
await migrateBackendTasks(knex);
|
||||
const manager = new PluginTaskSchedulerImpl(
|
||||
async () => knex,
|
||||
getVoidLogger(),
|
||||
);
|
||||
const logger = mockServices.logger.mock();
|
||||
const manager = new PluginTaskSchedulerImpl(async () => knex, logger);
|
||||
return { knex, manager };
|
||||
}
|
||||
|
||||
|
||||
@@ -14,8 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { TestDatabases } from '@backstage/backend-test-utils';
|
||||
import { TestDatabases, mockServices } from '@backstage/backend-test-utils';
|
||||
import { Knex } from 'knex';
|
||||
import { Duration } from 'luxon';
|
||||
import waitForExpect from 'wait-for-expect';
|
||||
@@ -36,7 +35,7 @@ const getTask = async (knex: Knex): Promise<DbTasksRow> => {
|
||||
};
|
||||
|
||||
describe('PluginTaskSchedulerJanitor', () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const databases = TestDatabases.create({
|
||||
ids: [
|
||||
/* 'MYSQL_8' not supported yet */
|
||||
|
||||
@@ -14,8 +14,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { DatabaseManager, getVoidLogger } from '@backstage/backend-common';
|
||||
import { TestDatabaseId, TestDatabases } from '@backstage/backend-test-utils';
|
||||
import { DatabaseManager } from '@backstage/backend-common';
|
||||
import {
|
||||
TestDatabaseId,
|
||||
TestDatabases,
|
||||
mockServices,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { Duration } from 'luxon';
|
||||
import waitForExpect from 'wait-for-expect';
|
||||
import { TaskScheduler } from './TaskScheduler';
|
||||
@@ -24,7 +28,7 @@ import { createTestScopedSignal } from './__testUtils__/createTestScopedSignal';
|
||||
jest.setTimeout(60_000);
|
||||
|
||||
describe('TaskScheduler', () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const databases = TestDatabases.create();
|
||||
const testScopedSignal = createTestScopedSignal();
|
||||
|
||||
|
||||
@@ -14,8 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { TestDatabases } from '@backstage/backend-test-utils';
|
||||
import { TestDatabases, mockServices } from '@backstage/backend-test-utils';
|
||||
import { Duration, DateTime } from 'luxon';
|
||||
import waitForExpect from 'wait-for-expect';
|
||||
import { migrateBackendTasks } from '../database/migrateBackendTasks';
|
||||
@@ -27,7 +26,7 @@ import { createTestScopedSignal } from './__testUtils__/createTestScopedSignal';
|
||||
jest.setTimeout(60_000);
|
||||
|
||||
describe('TaskWorker', () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const databases = TestDatabases.create();
|
||||
const testScopedSignal = createTestScopedSignal();
|
||||
|
||||
|
||||
@@ -57,6 +57,17 @@ import {
|
||||
eventsServiceRef,
|
||||
} from '@backstage/plugin-events-node';
|
||||
|
||||
/** @internal */
|
||||
function createLoggerMock() {
|
||||
return {
|
||||
child: jest.fn().mockImplementation(() => createLoggerMock()),
|
||||
debug: jest.fn(),
|
||||
error: jest.fn(),
|
||||
info: jest.fn(),
|
||||
warn: jest.fn(),
|
||||
};
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
function simpleFactory<
|
||||
TService,
|
||||
@@ -358,13 +369,10 @@ export namespace mockServices {
|
||||
|
||||
export namespace logger {
|
||||
export const factory = loggerServiceFactory;
|
||||
export const mock = simpleMock(coreServices.logger, () => ({
|
||||
child: jest.fn(),
|
||||
debug: jest.fn(),
|
||||
error: jest.fn(),
|
||||
info: jest.fn(),
|
||||
warn: jest.fn(),
|
||||
}));
|
||||
|
||||
export const mock = simpleMock(coreServices.logger, () =>
|
||||
createLoggerMock(),
|
||||
);
|
||||
}
|
||||
|
||||
export namespace permissions {
|
||||
|
||||
@@ -15,11 +15,10 @@
|
||||
*/
|
||||
|
||||
import { Knex as KnexType } from 'knex';
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { TestDatabases } from '@backstage/backend-test-utils';
|
||||
import { TestDatabases, mockServices } from '@backstage/backend-test-utils';
|
||||
import { StaticAssetsStore } from './StaticAssetsStore';
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
function createDatabaseManager(
|
||||
client: KnexType,
|
||||
|
||||
@@ -14,8 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { createMockDirectory } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
createMockDirectory,
|
||||
mockServices,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { injectConfig } from './config';
|
||||
|
||||
describe('injectConfig', () => {
|
||||
@@ -24,7 +26,7 @@ describe('injectConfig', () => {
|
||||
const baseOptions = {
|
||||
appConfigs: [],
|
||||
staticDir: mockDir.path,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { AppConfig, ConfigReader } from '@backstage/config';
|
||||
import express from 'express';
|
||||
import Router from 'express-promise-router';
|
||||
@@ -22,6 +21,7 @@ import { resolve as resolvePath } from 'path';
|
||||
import request from 'supertest';
|
||||
import { createRouter } from './router';
|
||||
import { loadConfigSchema } from '@backstage/config-loader';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
jest.mock('../lib/config', () => ({
|
||||
injectConfig: jest.fn(),
|
||||
@@ -38,7 +38,7 @@ describe('createRouter', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
const router = await createRouter({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
config: new ConfigReader({}),
|
||||
appPackageName: 'example-app',
|
||||
});
|
||||
@@ -96,7 +96,7 @@ describe('createRouter with static fallback handler', () => {
|
||||
});
|
||||
|
||||
const router = await createRouter({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
config: new ConfigReader({}),
|
||||
appPackageName: 'example-app',
|
||||
staticFallbackHandler,
|
||||
@@ -129,7 +129,7 @@ describe('createRouter config schema test', () => {
|
||||
|
||||
it('uses an external schema', async () => {
|
||||
await createRouter({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
config: new ConfigReader({
|
||||
test: 'value',
|
||||
}),
|
||||
@@ -170,7 +170,7 @@ describe('createRouter config schema test', () => {
|
||||
|
||||
it('uses no external schema', async () => {
|
||||
await createRouter({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
config: new ConfigReader({
|
||||
test: 'value',
|
||||
}),
|
||||
|
||||
@@ -20,7 +20,7 @@ import { DatabaseKeyStore } from './DatabaseKeyStore';
|
||||
import { FirestoreKeyStore } from './FirestoreKeyStore';
|
||||
import { KeyStores } from './KeyStores';
|
||||
import { MemoryKeyStore } from './MemoryKeyStore';
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
describe('KeyStores', () => {
|
||||
const defaultConfigOptions = {
|
||||
@@ -35,7 +35,7 @@ describe('KeyStores', () => {
|
||||
it('reads auth section from config', async () => {
|
||||
const configSpy = jest.spyOn(defaultConfig, 'getOptionalConfig');
|
||||
const keyStore = await KeyStores.fromConfig(defaultConfig, {
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
database: AuthDatabase.forTesting(),
|
||||
});
|
||||
|
||||
@@ -50,7 +50,7 @@ describe('KeyStores', () => {
|
||||
|
||||
it('can handle without auth config', async () => {
|
||||
const keyStore = await KeyStores.fromConfig(new ConfigReader({}), {
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
database: AuthDatabase.forTesting(),
|
||||
});
|
||||
expect(keyStore).toBeInstanceOf(DatabaseKeyStore);
|
||||
@@ -78,7 +78,7 @@ describe('KeyStores', () => {
|
||||
};
|
||||
const config = new ConfigReader(configOptions);
|
||||
const keyStore = await KeyStores.fromConfig(config, {
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
database: AuthDatabase.forTesting(),
|
||||
});
|
||||
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { StaticTokenIssuer } from './StaticTokenIssuer';
|
||||
import { createLocalJWKSet, jwtVerify } from 'jose';
|
||||
import { stringifyEntityRef } from '@backstage/catalog-model';
|
||||
import { StaticKeyStore } from './StaticKeyStore';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const entityRef = stringifyEntityRef({
|
||||
kind: 'User',
|
||||
namespace: 'default',
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { stringifyEntityRef } from '@backstage/catalog-model';
|
||||
import {
|
||||
base64url,
|
||||
@@ -25,8 +24,9 @@ import {
|
||||
import { MemoryKeyStore } from './MemoryKeyStore';
|
||||
import { TokenFactory } from './TokenFactory';
|
||||
import { tokenTypes } from '@backstage/plugin-auth-node';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
function jwtKid(jwt: string): string {
|
||||
const header = decodeProtectedHeader(jwt);
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
|
||||
import { CatalogAuthResolverContext } from './CatalogAuthResolverContext';
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { CatalogApi } from '@backstage/catalog-client';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
import { TokenIssuer } from '../../identity/types';
|
||||
@@ -32,7 +31,7 @@ describe('CatalogAuthResolverContext', () => {
|
||||
|
||||
it('adds kind to filter when missing', async () => {
|
||||
const context = CatalogAuthResolverContext.create({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
catalogApi: mockCatalogApi as CatalogApi,
|
||||
tokenIssuer: {} as TokenIssuer,
|
||||
tokenManager: mockServices.tokenManager(),
|
||||
|
||||
@@ -13,8 +13,10 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { Config, ConfigReader } from '@backstage/config';
|
||||
import {
|
||||
@@ -112,7 +114,7 @@ describe('oidc.create', () => {
|
||||
clientSecret: 'clientSecret',
|
||||
},
|
||||
}),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
resolverContext: {
|
||||
issueToken: jest.fn(),
|
||||
findCatalogUser: jest.fn(),
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger, UrlReaders } from '@backstage/backend-common';
|
||||
import { UrlReaders } from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { AwsS3DiscoveryProcessor } from './AwsS3DiscoveryProcessor';
|
||||
import {
|
||||
@@ -33,6 +33,7 @@ import { sdkStreamMixin } from '@aws-sdk/util-stream-node';
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import YAML from 'yaml';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
const s3Client = mockClient(S3Client);
|
||||
const object: Object = {
|
||||
@@ -43,7 +44,7 @@ const output: ListObjectsV2Output = {
|
||||
Contents: objectList,
|
||||
};
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const reader = UrlReaders.default({
|
||||
logger,
|
||||
config: new ConfigReader({
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
@@ -26,6 +25,7 @@ import { AwsS3EntityProvider } from './AwsS3EntityProvider';
|
||||
import { mockClient } from 'aws-sdk-client-mock';
|
||||
import 'aws-sdk-client-mock-jest';
|
||||
import { ListObjectsV2Command, S3Client } from '@aws-sdk/client-s3';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
class PersistingTaskRunner implements TaskRunner {
|
||||
private tasks: TaskInvocationDefinition[] = [];
|
||||
@@ -40,7 +40,7 @@ class PersistingTaskRunner implements TaskRunner {
|
||||
}
|
||||
}
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
describe('AwsS3EntityProvider', () => {
|
||||
const createObjectList = (keys: string[]) => {
|
||||
@@ -79,7 +79,7 @@ describe('AwsS3EntityProvider', () => {
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
jest.clearAllMocks();
|
||||
process.env.AWS_REGION = undefined;
|
||||
});
|
||||
|
||||
|
||||
+4
-4
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { LocationSpec } from '@backstage/plugin-catalog-common';
|
||||
import {
|
||||
@@ -22,6 +21,7 @@ import {
|
||||
parseUrl,
|
||||
} from './AzureDevOpsDiscoveryProcessor';
|
||||
import { codeSearch } from '../lib';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
jest.mock('../lib');
|
||||
const mockCodeSearch = codeSearch as jest.MockedFunction<typeof codeSearch>;
|
||||
@@ -106,7 +106,7 @@ describe('AzureDevOpsDiscoveryProcessor', () => {
|
||||
azure: [{ host: 'dev.azure.com', token: 'blob' }],
|
||||
},
|
||||
}),
|
||||
{ logger: getVoidLogger() },
|
||||
{ logger: mockServices.logger.mock() },
|
||||
);
|
||||
const location: LocationSpec = {
|
||||
type: 'not-azure-discovery',
|
||||
@@ -128,7 +128,7 @@ describe('AzureDevOpsDiscoveryProcessor', () => {
|
||||
],
|
||||
},
|
||||
}),
|
||||
{ logger: getVoidLogger() },
|
||||
{ logger: mockServices.logger.mock() },
|
||||
);
|
||||
const location: LocationSpec = {
|
||||
type: 'azure-discovery',
|
||||
@@ -148,7 +148,7 @@ describe('AzureDevOpsDiscoveryProcessor', () => {
|
||||
github: [{ host: 'dev.azure.com', token: 'blob' }],
|
||||
},
|
||||
}),
|
||||
{ logger: getVoidLogger() },
|
||||
{ logger: mockServices.logger.mock() },
|
||||
);
|
||||
|
||||
beforeEach(() => {
|
||||
|
||||
+2
-2
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
@@ -25,6 +24,7 @@ import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import { CodeSearchResultItem } from '../lib';
|
||||
import { AzureDevOpsEntityProvider } from './AzureDevOpsEntityProvider';
|
||||
import { codeSearch } from '../lib';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
jest.mock('../lib');
|
||||
const mockCodeSearch = codeSearch as jest.MockedFunction<typeof codeSearch>;
|
||||
@@ -42,7 +42,7 @@ class PersistingTaskRunner implements TaskRunner {
|
||||
}
|
||||
}
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
describe('AzureDevOpsEntityProvider', () => {
|
||||
afterEach(() => {
|
||||
|
||||
+7
-4
@@ -14,13 +14,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger, TokenManager } from '@backstage/backend-common';
|
||||
import { TokenManager } from '@backstage/backend-common';
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
TaskRunner,
|
||||
} from '@backstage/backend-tasks';
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { CatalogApi } from '@backstage/catalog-client';
|
||||
import { Entity, LocationEntity } from '@backstage/catalog-model';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
@@ -54,7 +57,7 @@ class PersistingTaskRunner implements TaskRunner {
|
||||
}
|
||||
}
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
const server = setupServer();
|
||||
|
||||
@@ -152,7 +155,7 @@ describe('BitbucketCloudEntityProvider', () => {
|
||||
};
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
jest.clearAllMocks();
|
||||
schedule.reset();
|
||||
});
|
||||
|
||||
|
||||
+1
@@ -146,6 +146,7 @@ export class BitbucketCloudEntityProvider implements EntityProvider {
|
||||
return schedule.run({
|
||||
id: taskId,
|
||||
fn: async () => {
|
||||
console.log('---> child', this.logger);
|
||||
const logger = this.logger.child({
|
||||
class: BitbucketCloudEntityProvider.prototype.constructor.name,
|
||||
taskId,
|
||||
|
||||
+8
-4
@@ -14,13 +14,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
TaskRunner,
|
||||
} from '@backstage/backend-tasks';
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import { rest } from 'msw';
|
||||
@@ -53,7 +55,7 @@ function pagedResponse(values: any): BitbucketServerPagedResponse<any> {
|
||||
} as BitbucketServerPagedResponse<any>;
|
||||
}
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
const server = setupServer();
|
||||
|
||||
@@ -102,7 +104,9 @@ function setupStubs(projects: Project[], baseUrl: string) {
|
||||
|
||||
describe('BitbucketServerEntityProvider', () => {
|
||||
setupRequestMockHandlers(server);
|
||||
afterEach(() => jest.resetAllMocks());
|
||||
afterEach(() => {
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
it('no provider config', () => {
|
||||
const schedule = new PersistingTaskRunner();
|
||||
|
||||
@@ -14,13 +14,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
TaskRunner,
|
||||
} from '@backstage/backend-tasks';
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import fs from 'fs-extra';
|
||||
@@ -52,13 +54,13 @@ class PersistingTaskRunner implements TaskRunner {
|
||||
}
|
||||
}
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
describe('GerritEntityProvider', () => {
|
||||
setupRequestMockHandlers(server);
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
const config = new ConfigReader({
|
||||
|
||||
+4
-4
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import {
|
||||
DefaultGithubCredentialsProvider,
|
||||
@@ -23,6 +22,7 @@ import {
|
||||
import { LocationSpec } from '@backstage/plugin-catalog-node';
|
||||
import { GithubDiscoveryProcessor, parseUrl } from './GithubDiscoveryProcessor';
|
||||
import { getOrganizationRepositories } from '../lib';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
jest.mock('../lib');
|
||||
const mockGetOrganizationRepositories =
|
||||
@@ -80,7 +80,7 @@ describe('GithubDiscoveryProcessor', () => {
|
||||
const githubCredentialsProvider =
|
||||
DefaultGithubCredentialsProvider.fromIntegrations(integrations);
|
||||
const processor = GithubDiscoveryProcessor.fromConfig(config, {
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
githubCredentialsProvider,
|
||||
});
|
||||
const location: LocationSpec = {
|
||||
@@ -105,7 +105,7 @@ describe('GithubDiscoveryProcessor', () => {
|
||||
const githubCredentialsProvider =
|
||||
DefaultGithubCredentialsProvider.fromIntegrations(integrations);
|
||||
const processor = GithubDiscoveryProcessor.fromConfig(config, {
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
githubCredentialsProvider,
|
||||
});
|
||||
const location: LocationSpec = {
|
||||
@@ -130,7 +130,7 @@ describe('GithubDiscoveryProcessor', () => {
|
||||
const githubCredentialsProvider =
|
||||
DefaultGithubCredentialsProvider.fromIntegrations(integrations);
|
||||
const processor = GithubDiscoveryProcessor.fromConfig(config, {
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
githubCredentialsProvider,
|
||||
});
|
||||
|
||||
|
||||
+2
-2
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import {
|
||||
GithubCredentialsProvider,
|
||||
@@ -23,12 +22,13 @@ import {
|
||||
import { LocationSpec } from '@backstage/plugin-catalog-node';
|
||||
import { graphql } from '@octokit/graphql';
|
||||
import { GithubOrgReaderProcessor } from './GithubOrgReaderProcessor';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
jest.mock('@octokit/graphql');
|
||||
|
||||
describe('GithubOrgReaderProcessor', () => {
|
||||
describe('implementation', () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const integrations = ScmIntegrations.fromConfig(
|
||||
new ConfigReader({
|
||||
integrations: {
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
@@ -25,6 +24,7 @@ import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import { GithubEntityProvider } from './GithubEntityProvider';
|
||||
import * as helpers from '../lib/github';
|
||||
import { EventParams } from '@backstage/plugin-events-node';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
jest.mock('../lib/github', () => {
|
||||
return {
|
||||
@@ -44,10 +44,10 @@ class PersistingTaskRunner implements TaskRunner {
|
||||
}
|
||||
}
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
describe('GithubEntityProvider', () => {
|
||||
afterEach(() => jest.resetAllMocks());
|
||||
afterEach(() => jest.clearAllMocks());
|
||||
|
||||
it('no provider config', () => {
|
||||
const schedule = new PersistingTaskRunner();
|
||||
|
||||
+3
-3
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { GroupEntity, UserEntity } from '@backstage/catalog-model';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { GithubCredentialsProvider } from '@backstage/integration';
|
||||
@@ -29,6 +28,7 @@ import {
|
||||
withLocations,
|
||||
} from './GithubMultiOrgEntityProvider';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
jest.mock('@octokit/graphql');
|
||||
|
||||
@@ -60,7 +60,7 @@ describe('GithubMultiOrgEntityProvider', () => {
|
||||
refresh: jest.fn(),
|
||||
};
|
||||
|
||||
logger = getVoidLogger();
|
||||
logger = mockServices.logger.mock();
|
||||
|
||||
gitHubConfig = { host: 'github.com' };
|
||||
|
||||
@@ -1016,7 +1016,7 @@ describe('GithubMultiOrgEntityProvider', () => {
|
||||
};
|
||||
|
||||
beforeEach(async () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
events = DefaultEventsService.create({ logger });
|
||||
const config = new ConfigReader({
|
||||
integrations: {
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { GroupEntity, UserEntity } from '@backstage/catalog-model';
|
||||
import {
|
||||
GithubCredentialsProvider,
|
||||
@@ -28,6 +27,7 @@ import {
|
||||
} from '@backstage/plugin-events-node';
|
||||
import { GithubOrgEntityProvider } from './GithubOrgEntityProvider';
|
||||
import { withLocations } from '../lib/withLocations';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
jest.mock('@octokit/graphql');
|
||||
|
||||
@@ -48,7 +48,7 @@ describe('GithubOrgEntityProvider', () => {
|
||||
refresh: jest.fn(),
|
||||
};
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const gitHubConfig = {
|
||||
host: 'https://github.com',
|
||||
};
|
||||
@@ -269,7 +269,7 @@ describe('GithubOrgEntityProvider', () => {
|
||||
refresh: jest.fn(),
|
||||
};
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const events = DefaultEventsService.create({ logger });
|
||||
const gitHubConfig: GithubIntegrationConfig = {
|
||||
host: 'github.com',
|
||||
@@ -356,7 +356,7 @@ describe('GithubOrgEntityProvider', () => {
|
||||
refresh: jest.fn(),
|
||||
};
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const events = DefaultEventsService.create({ logger });
|
||||
const gitHubConfig: GithubIntegrationConfig = {
|
||||
host: 'github.com',
|
||||
@@ -443,7 +443,7 @@ describe('GithubOrgEntityProvider', () => {
|
||||
refresh: jest.fn(),
|
||||
};
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const events = DefaultEventsService.create({ logger });
|
||||
const gitHubConfig: GithubIntegrationConfig = {
|
||||
host: 'github.com',
|
||||
@@ -536,7 +536,7 @@ describe('GithubOrgEntityProvider', () => {
|
||||
refresh: jest.fn(),
|
||||
};
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const events = DefaultEventsService.create({ logger });
|
||||
const gitHubConfig: GithubIntegrationConfig = {
|
||||
host: 'github.com',
|
||||
@@ -630,7 +630,7 @@ describe('GithubOrgEntityProvider', () => {
|
||||
refresh: jest.fn(),
|
||||
};
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const events = DefaultEventsService.create({ logger });
|
||||
const gitHubConfig: GithubIntegrationConfig = {
|
||||
host: 'github.com',
|
||||
@@ -881,7 +881,7 @@ describe('GithubOrgEntityProvider', () => {
|
||||
refresh: jest.fn(),
|
||||
};
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const events = DefaultEventsService.create({ logger });
|
||||
const gitHubConfig: GithubIntegrationConfig = {
|
||||
host: 'github.com',
|
||||
@@ -1129,7 +1129,7 @@ describe('GithubOrgEntityProvider', () => {
|
||||
refresh: jest.fn(),
|
||||
};
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const events = DefaultEventsService.create({ logger });
|
||||
const gitHubConfig: GithubIntegrationConfig = {
|
||||
host: 'github.com',
|
||||
|
||||
@@ -14,8 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { LocationSpec } from '@backstage/plugin-catalog-node';
|
||||
import { rest, RestRequest } from 'msw';
|
||||
@@ -148,7 +150,7 @@ function getProcessor({
|
||||
return GitLabDiscoveryProcessor.fromConfig(
|
||||
new ConfigReader(config || getConfig()),
|
||||
{
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
...options,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -14,8 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { readGitLabIntegrationConfig } from '@backstage/integration';
|
||||
import { setupServer } from 'msw/node';
|
||||
@@ -34,14 +36,14 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
expect(client.isSelfManaged()).toBeTruthy();
|
||||
});
|
||||
it('returns false if gitlab.com', () => {
|
||||
const client = new GitLabClient({
|
||||
config: readGitLabIntegrationConfig(new ConfigReader(mock.config_saas)),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
expect(client.isSelfManaged()).toBeFalsy();
|
||||
});
|
||||
@@ -53,7 +55,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const { items } = await client.pagedRequest(mock.paged_endpoint);
|
||||
@@ -66,7 +68,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const requestedPage = 2;
|
||||
@@ -87,7 +89,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const { items, nextPage } = await client.pagedRequest(
|
||||
@@ -106,7 +108,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
// non-200 status code should throw
|
||||
await expect(() =>
|
||||
@@ -122,7 +124,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const groupProjectsGen = paginated(
|
||||
@@ -146,7 +148,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const instanceProjects = paginated(
|
||||
@@ -167,7 +169,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const allUsers: GitLabUser[] = [];
|
||||
@@ -188,7 +190,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const allGroups: GitLabGroup[] = [];
|
||||
@@ -207,7 +209,7 @@ describe('GitLabClient', () => {
|
||||
it('gets all users under group', async () => {
|
||||
const client = new GitLabClient({
|
||||
config: readGitLabIntegrationConfig(new ConfigReader(mock.config_saas)),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
const saasMembers = (
|
||||
await client.getGroupMembers('saas-multi-user-group', [
|
||||
@@ -221,7 +223,7 @@ describe('GitLabClient', () => {
|
||||
it('gets all users with token without full permissions', async () => {
|
||||
const client = new GitLabClient({
|
||||
config: readGitLabIntegrationConfig(new ConfigReader(mock.config_saas)),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
const saasMembers = (
|
||||
await client.getGroupMembers('', ['DIRECT, DESCENDANTS'])
|
||||
@@ -231,7 +233,7 @@ describe('GitLabClient', () => {
|
||||
it('rejects when GraphQL returns errors', async () => {
|
||||
const client = new GitLabClient({
|
||||
config: readGitLabIntegrationConfig(new ConfigReader(mock.config_saas)),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
await expect(() =>
|
||||
client.getGroupMembers('error-group', ['DIRECT, DESCENDANTS']),
|
||||
@@ -244,7 +246,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
const saasMembers = (
|
||||
await client.getGroupMembers('multi-page-saas', ['DIRECT, DESCENDANTS'])
|
||||
@@ -262,7 +264,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const allGroups = (await client.listDescendantGroups('group-with-parent'))
|
||||
@@ -277,7 +279,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const allGroups = (
|
||||
@@ -292,7 +294,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
await expect(() =>
|
||||
@@ -306,7 +308,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const saasGroups = (await client.listDescendantGroups('root')).items;
|
||||
@@ -323,7 +325,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const members = await client.getGroupMembers('group1', ['DIRECT']);
|
||||
@@ -346,7 +348,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const members = await client.getGroupMembers('non-existing-group', [
|
||||
@@ -362,7 +364,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
await expect(() =>
|
||||
@@ -377,7 +379,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const members = await client.getGroupMembers('multi-page', ['DIRECT']);
|
||||
@@ -393,7 +395,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const group = await client.getGroupById(1);
|
||||
@@ -405,7 +407,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
await expect(() => client.getGroupById(42)).rejects.toThrow(
|
||||
@@ -420,7 +422,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const project = await client.getProjectById(1);
|
||||
@@ -432,7 +434,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
await expect(() => client.getProjectById(42)).rejects.toThrow(
|
||||
@@ -447,7 +449,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const user = await client.getUserById(1);
|
||||
@@ -459,7 +461,7 @@ describe('GitLabClient', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
await expect(() => client.getUserById(42)).rejects.toThrow(
|
||||
@@ -475,7 +477,7 @@ describe('paginated', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const paginatedItems = paginated(
|
||||
@@ -499,7 +501,7 @@ describe('hasFile', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
});
|
||||
|
||||
@@ -528,7 +530,7 @@ describe('pagedRequest search params', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const { items } = await client.pagedRequest<{ endpoint: string }>(
|
||||
@@ -546,7 +548,7 @@ describe('pagedRequest search params', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const { items } = await client.pagedRequest<{ endpoint: string }>(
|
||||
@@ -567,7 +569,7 @@ describe('pagedRequest search params', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const { items } = await client.pagedRequest<{ endpoint: string }>(
|
||||
@@ -588,7 +590,7 @@ describe('pagedRequest search params', () => {
|
||||
config: readGitLabIntegrationConfig(
|
||||
new ConfigReader(mock.config_self_managed),
|
||||
),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const { items } = await client.pagedRequest<{ endpoint: string }>(
|
||||
|
||||
+6
-4
@@ -14,13 +14,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
TaskRunner,
|
||||
} from '@backstage/backend-tasks';
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import { DefaultEventsService } from '@backstage/plugin-events-node';
|
||||
@@ -31,7 +33,7 @@ import { GitlabDiscoveryEntityProvider } from './GitlabDiscoveryEntityProvider';
|
||||
|
||||
const server = setupServer(...handlers);
|
||||
setupRequestMockHandlers(server);
|
||||
afterEach(() => jest.resetAllMocks());
|
||||
afterEach(() => jest.clearAllMocks());
|
||||
|
||||
class PersistingTaskRunner implements TaskRunner {
|
||||
private tasks: TaskInvocationDefinition[] = [];
|
||||
@@ -46,7 +48,7 @@ class PersistingTaskRunner implements TaskRunner {
|
||||
}
|
||||
}
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
describe('GitlabDiscoveryEntityProvider - configuration', () => {
|
||||
it('should not instantiate providers when no config found', () => {
|
||||
|
||||
+6
-4
@@ -14,13 +14,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
TaskRunner,
|
||||
} from '@backstage/backend-tasks';
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
|
||||
import { DefaultEventsService } from '@backstage/plugin-events-node';
|
||||
@@ -32,7 +34,7 @@ import { GitlabOrgDiscoveryEntityProvider } from './GitlabOrgDiscoveryEntityProv
|
||||
|
||||
const server = setupServer(...handlers);
|
||||
setupRequestMockHandlers(server);
|
||||
afterEach(() => jest.resetAllMocks());
|
||||
afterEach(() => jest.clearAllMocks());
|
||||
|
||||
class PersistingTaskRunner implements TaskRunner {
|
||||
private tasks: TaskInvocationDefinition[] = [];
|
||||
@@ -47,7 +49,7 @@ class PersistingTaskRunner implements TaskRunner {
|
||||
}
|
||||
}
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
describe('GitlabOrgDiscoveryEntityProvider - configuration', () => {
|
||||
it('should not instantiate providers when no config found', () => {
|
||||
|
||||
+3
-4
@@ -14,9 +14,8 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { TestDatabases } from '@backstage/backend-test-utils';
|
||||
import { TestDatabases, mockServices } from '@backstage/backend-test-utils';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { IncrementalEntityProvider } from '../types';
|
||||
import { WrapperProviders } from './WrapperProviders';
|
||||
@@ -29,13 +28,13 @@ describe('WrapperProviders', () => {
|
||||
ids: ['POSTGRES_16', 'POSTGRES_12', 'SQLITE_3', 'MYSQL_8'],
|
||||
});
|
||||
const config = new ConfigReader({});
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const scheduler = {
|
||||
scheduleTask: jest.fn(),
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
jest.resetAllMocks();
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
it.each(databases.eachSupportedId())(
|
||||
|
||||
@@ -25,7 +25,7 @@ import {
|
||||
readMicrosoftGraphUsersInGroups,
|
||||
resolveRelations,
|
||||
} from './read';
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
function user(data: Partial<UserEntity>): UserEntity {
|
||||
return merge(
|
||||
@@ -106,7 +106,7 @@ describe('read microsoft graph', () => {
|
||||
|
||||
const { users } = await readMicrosoftGraphUsers(client, {
|
||||
userFilter: 'accountEnabled eq true',
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
expect(users).toEqual([
|
||||
@@ -153,7 +153,7 @@ describe('read microsoft graph', () => {
|
||||
const { users } = await readMicrosoftGraphUsers(client, {
|
||||
queryMode: 'advanced',
|
||||
userFilter: 'accountEnabled eq true',
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
expect(users).toEqual([
|
||||
@@ -206,7 +206,7 @@ describe('read microsoft graph', () => {
|
||||
metadata: { name: 'x' },
|
||||
spec: { memberOf: [] },
|
||||
}),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
expect(users).toEqual([
|
||||
@@ -246,7 +246,7 @@ describe('read microsoft graph', () => {
|
||||
|
||||
const { users } = await readMicrosoftGraphUsersInGroups(client, {
|
||||
userGroupMemberFilter: 'securityEnabled eq true',
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
expect(users).toEqual([
|
||||
@@ -304,7 +304,7 @@ describe('read microsoft graph', () => {
|
||||
const { users } = await readMicrosoftGraphUsersInGroups(client, {
|
||||
queryMode: 'advanced',
|
||||
userGroupMemberFilter: 'securityEnabled eq true',
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
expect(users).toEqual([
|
||||
@@ -369,7 +369,7 @@ describe('read microsoft graph', () => {
|
||||
metadata: { name: 'x' },
|
||||
spec: { memberOf: [] },
|
||||
}),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
expect(users).toEqual([
|
||||
@@ -893,7 +893,7 @@ describe('read microsoft graph', () => {
|
||||
);
|
||||
|
||||
await readMicrosoftGraphOrg(client, 'tenantid', {
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
groupFilter: 'securityEnabled eq false',
|
||||
});
|
||||
|
||||
@@ -930,7 +930,7 @@ describe('read microsoft graph', () => {
|
||||
);
|
||||
|
||||
await readMicrosoftGraphOrg(client, 'tenantid', {
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
userExpand: 'manager',
|
||||
userFilter: 'accountEnabled eq true',
|
||||
groupFilter: 'securityEnabled eq false',
|
||||
@@ -970,7 +970,7 @@ describe('read microsoft graph', () => {
|
||||
);
|
||||
|
||||
await readMicrosoftGraphOrg(client, 'tenantid', {
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
loadUserPhotos: false,
|
||||
});
|
||||
|
||||
@@ -1007,7 +1007,7 @@ describe('read microsoft graph', () => {
|
||||
client.getGroupMembers.mockImplementation(getExampleGroupMembers);
|
||||
|
||||
await readMicrosoftGraphOrg(client, 'tenantid', {
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
userSelect: ['mail'],
|
||||
});
|
||||
|
||||
@@ -1040,7 +1040,7 @@ describe('read microsoft graph', () => {
|
||||
);
|
||||
|
||||
await readMicrosoftGraphOrg(client, 'tenantid', {
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
userGroupMemberFilter: 'name eq backstage-group',
|
||||
groupFilter: 'securityEnabled eq false',
|
||||
});
|
||||
@@ -1089,7 +1089,7 @@ describe('read microsoft graph', () => {
|
||||
);
|
||||
|
||||
const { users } = await readMicrosoftGraphOrg(client, 'tenantid', {
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
loadUserPhotos: false,
|
||||
});
|
||||
|
||||
|
||||
+2
-2
@@ -13,7 +13,6 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
PluginTaskScheduler,
|
||||
TaskInvocationDefinition,
|
||||
@@ -36,6 +35,7 @@ import {
|
||||
MicrosoftGraphOrgEntityProvider,
|
||||
withLocations,
|
||||
} from './MicrosoftGraphOrgEntityProvider';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
jest.mock('../microsoftGraph', () => {
|
||||
return {
|
||||
@@ -98,7 +98,7 @@ describe('MicrosoftGraphOrgEntityProvider', () => {
|
||||
|
||||
afterEach(() => jest.resetAllMocks());
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const taskRunner = new PersistingTaskRunner();
|
||||
const scheduler = {
|
||||
createScheduledTaskRunner: (_: any) => taskRunner,
|
||||
|
||||
+2
-2
@@ -14,10 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { GroupEntity, UserEntity } from '@backstage/catalog-model';
|
||||
import { MicrosoftGraphClient, readMicrosoftGraphOrg } from '../microsoftGraph';
|
||||
import { MicrosoftGraphOrgReaderProcessor } from './MicrosoftGraphOrgReaderProcessor';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
jest.mock('../microsoftGraph', () => {
|
||||
return {
|
||||
@@ -45,7 +45,7 @@ describe('MicrosoftGraphOrgReaderProcessor', () => {
|
||||
clientSecret: 'clientsecret',
|
||||
},
|
||||
],
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
jest
|
||||
|
||||
@@ -13,11 +13,12 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { LocationSpec } from '@backstage/plugin-catalog-backend';
|
||||
import { OpenApiRefProcessor } from './OpenApiRefProcessor';
|
||||
import { bundleFileWithRefs } from './lib';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
import { loggerToWinstonLogger } from '@backstage/backend-common';
|
||||
|
||||
jest.mock('./lib', () => ({
|
||||
bundleFileWithRefs: jest.fn(),
|
||||
@@ -53,7 +54,7 @@ describe('OpenApiRefProcessor', () => {
|
||||
search: jest.fn(),
|
||||
};
|
||||
const processor = OpenApiRefProcessor.fromConfig(config, {
|
||||
logger: getVoidLogger(),
|
||||
logger: loggerToWinstonLogger(mockServices.logger.mock()),
|
||||
reader,
|
||||
});
|
||||
|
||||
|
||||
+2
-2
@@ -16,7 +16,6 @@
|
||||
|
||||
import { TaskInvocationDefinition, TaskRunner } from '@backstage/backend-tasks';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { PuppetDbEntityProvider } from './PuppetDbEntityProvider';
|
||||
import {
|
||||
DeferredEntity,
|
||||
@@ -30,6 +29,7 @@ import {
|
||||
ResourceEntity,
|
||||
} from '@backstage/catalog-model';
|
||||
import { DEFAULT_ENTITY_OWNER, ENDPOINT_NODES } from '../puppet/constants';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
jest.mock('../puppet/read', () => {
|
||||
return {
|
||||
@@ -37,7 +37,7 @@ jest.mock('../puppet/read', () => {
|
||||
};
|
||||
});
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
class PersistingTaskRunner implements TaskRunner {
|
||||
private tasks: TaskInvocationDefinition[] = [];
|
||||
|
||||
@@ -14,8 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { TestDatabases } from '@backstage/backend-test-utils';
|
||||
import { TestDatabases, mockServices } from '@backstage/backend-test-utils';
|
||||
import { Entity } from '@backstage/catalog-model';
|
||||
import { applyDatabaseMigrations } from '../../migrations';
|
||||
import {
|
||||
@@ -31,7 +30,7 @@ jest.setTimeout(60_000);
|
||||
|
||||
describe('performStitching', () => {
|
||||
const databases = TestDatabases.create();
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
// NOTE(freben): Testing the deferred path since it's a superset of the immediate one
|
||||
it.each(databases.eachSupportedId())(
|
||||
|
||||
@@ -14,10 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { CodeOwnersProcessor } from './CodeOwnersProcessor';
|
||||
import { LocationSpec } from '@backstage/plugin-catalog-common';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
const mockCodeOwnersText = () => `
|
||||
* @acme/team-foo @acme/team-bar
|
||||
@@ -52,7 +52,7 @@ describe('CodeOwnersProcessor', () => {
|
||||
}),
|
||||
};
|
||||
const processor = CodeOwnersProcessor.fromConfig(config, {
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
reader,
|
||||
});
|
||||
|
||||
|
||||
@@ -14,12 +14,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { UrlReader, UrlReaders } from '@backstage/backend-common';
|
||||
import {
|
||||
getVoidLogger,
|
||||
UrlReader,
|
||||
UrlReaders,
|
||||
} from '@backstage/backend-common';
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { rest } from 'msw';
|
||||
import { setupServer } from 'msw/node';
|
||||
@@ -47,7 +46,7 @@ describe('UrlReaderProcessor', () => {
|
||||
});
|
||||
|
||||
it('should load from url', async () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const reader = UrlReaders.default({
|
||||
logger,
|
||||
config: new ConfigReader({
|
||||
@@ -105,7 +104,7 @@ describe('UrlReaderProcessor', () => {
|
||||
});
|
||||
|
||||
it('should use cached data when available', async () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const reader = UrlReaders.default({
|
||||
logger,
|
||||
config: new ConfigReader({
|
||||
@@ -153,7 +152,7 @@ describe('UrlReaderProcessor', () => {
|
||||
});
|
||||
|
||||
it('should fail load from url with error', async () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const reader = UrlReaders.default({
|
||||
logger,
|
||||
config: new ConfigReader({
|
||||
@@ -191,7 +190,7 @@ describe('UrlReaderProcessor', () => {
|
||||
});
|
||||
|
||||
it('uses search when there are globs', async () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
const reader: jest.Mocked<UrlReader> = {
|
||||
readUrl: jest.fn(),
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { Hash } from 'crypto';
|
||||
import { DateTime } from 'luxon';
|
||||
import waitForExpect from 'wait-for-expect';
|
||||
@@ -23,6 +22,7 @@ import { DefaultCatalogProcessingEngine } from './DefaultCatalogProcessingEngine
|
||||
import { CatalogProcessingOrchestrator } from './types';
|
||||
import { Stitcher } from '../stitching/types';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
describe('DefaultCatalogProcessingEngine', () => {
|
||||
const db = {
|
||||
@@ -64,7 +64,7 @@ describe('DefaultCatalogProcessingEngine', () => {
|
||||
});
|
||||
const engine = new DefaultCatalogProcessingEngine({
|
||||
config: new ConfigReader({}),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
processingDatabase: db,
|
||||
knex: {} as any,
|
||||
orchestrator: orchestrator,
|
||||
@@ -132,7 +132,7 @@ describe('DefaultCatalogProcessingEngine', () => {
|
||||
});
|
||||
const engine = new DefaultCatalogProcessingEngine({
|
||||
config: new ConfigReader({}),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
processingDatabase: db,
|
||||
knex: {} as any,
|
||||
orchestrator: orchestrator,
|
||||
@@ -216,7 +216,7 @@ describe('DefaultCatalogProcessingEngine', () => {
|
||||
|
||||
const engine = new DefaultCatalogProcessingEngine({
|
||||
config: new ConfigReader({}),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
processingDatabase: db,
|
||||
knex: {} as any,
|
||||
orchestrator: orchestrator,
|
||||
@@ -293,7 +293,7 @@ describe('DefaultCatalogProcessingEngine', () => {
|
||||
|
||||
const engine = new DefaultCatalogProcessingEngine({
|
||||
config: new ConfigReader({}),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
processingDatabase: db,
|
||||
knex: {} as any,
|
||||
orchestrator: orchestrator,
|
||||
@@ -352,7 +352,7 @@ describe('DefaultCatalogProcessingEngine', () => {
|
||||
it('should stitch both the previous and new sources when relations change', async () => {
|
||||
const engine = new DefaultCatalogProcessingEngine({
|
||||
config: new ConfigReader({}),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
processingDatabase: db,
|
||||
knex: {} as any,
|
||||
orchestrator: orchestrator,
|
||||
@@ -467,7 +467,7 @@ describe('DefaultCatalogProcessingEngine', () => {
|
||||
it('should not stitch sources entities when relations are the same', async () => {
|
||||
const engine = new DefaultCatalogProcessingEngine({
|
||||
config: new ConfigReader({}),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
processingDatabase: db,
|
||||
knex: {} as any,
|
||||
orchestrator: orchestrator,
|
||||
@@ -550,7 +550,7 @@ describe('DefaultCatalogProcessingEngine', () => {
|
||||
it('should stitch sources entities when new relation of different type added', async () => {
|
||||
const engine = new DefaultCatalogProcessingEngine({
|
||||
config: new ConfigReader({}),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
processingDatabase: db,
|
||||
knex: {} as any,
|
||||
orchestrator: orchestrator,
|
||||
@@ -638,7 +638,7 @@ describe('DefaultCatalogProcessingEngine', () => {
|
||||
it('should stitch sources entities when relation is removed', async () => {
|
||||
const engine = new DefaultCatalogProcessingEngine({
|
||||
config: new ConfigReader({}),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
processingDatabase: db,
|
||||
knex: {} as any,
|
||||
orchestrator: orchestrator,
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
ANNOTATION_LOCATION,
|
||||
ANNOTATION_ORIGIN_LOCATION,
|
||||
@@ -37,6 +36,7 @@ import { DefaultCatalogProcessingOrchestrator } from './DefaultCatalogProcessing
|
||||
import { defaultEntityDataParser } from '../modules/util/parse';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { InputError } from '@backstage/errors';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
class FooBarProcessor implements CatalogProcessor {
|
||||
getProcessorName = () => 'foo-bar';
|
||||
@@ -93,7 +93,7 @@ describe('DefaultCatalogProcessingOrchestrator', () => {
|
||||
const orchestrator = new DefaultCatalogProcessingOrchestrator({
|
||||
processors: [new FooBarProcessor()],
|
||||
integrations: ScmIntegrations.fromConfig(new ConfigReader({})),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
parser: defaultEntityDataParser,
|
||||
policy: EntityPolicies.allOf([]),
|
||||
rulesEnforcer: { isAllowed: () => true },
|
||||
@@ -209,7 +209,7 @@ describe('DefaultCatalogProcessingOrchestrator', () => {
|
||||
processor2 as CatalogProcessor,
|
||||
],
|
||||
integrations: ScmIntegrations.fromConfig(new ConfigReader({})),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
parser: defaultEntityDataParser,
|
||||
policy: EntityPolicies.allOf([]),
|
||||
rulesEnforcer: { isAllowed: () => true },
|
||||
@@ -222,7 +222,7 @@ describe('DefaultCatalogProcessingOrchestrator', () => {
|
||||
processor2 as CatalogProcessor,
|
||||
],
|
||||
integrations: ScmIntegrations.fromConfig(new ConfigReader({})),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
parser: defaultEntityDataParser,
|
||||
policy: EntityPolicies.allOf([]),
|
||||
rulesEnforcer: { isAllowed: () => true },
|
||||
@@ -287,7 +287,7 @@ describe('DefaultCatalogProcessingOrchestrator', () => {
|
||||
const orchestrator = new DefaultCatalogProcessingOrchestrator({
|
||||
processors: [processor],
|
||||
integrations,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
parser,
|
||||
policy: EntityPolicies.allOf([]),
|
||||
rulesEnforcer,
|
||||
@@ -329,7 +329,7 @@ describe('DefaultCatalogProcessingOrchestrator', () => {
|
||||
const orchestrator = new DefaultCatalogProcessingOrchestrator({
|
||||
processors: [processor],
|
||||
integrations,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
parser,
|
||||
policy: EntityPolicies.allOf([new FailingEntityPolicy()]),
|
||||
rulesEnforcer,
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
TestDatabaseId,
|
||||
TestDatabases,
|
||||
mockCredentials,
|
||||
mockServices,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { Entity, stringifyEntityRef } from '@backstage/catalog-model';
|
||||
import { Knex } from 'knex';
|
||||
@@ -163,7 +163,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
const result = await catalog.entityAncestry('k:default/root');
|
||||
@@ -196,7 +196,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
await createDatabase(databaseId);
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
await expect(() =>
|
||||
@@ -242,7 +242,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
const result = await catalog.entityAncestry('k:default/root');
|
||||
@@ -301,7 +301,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
await addEntityToSearch(entity2);
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -340,7 +340,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
await addEntityToSearch(entity2);
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -393,7 +393,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
await addEntityToSearch(entity4);
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -452,7 +452,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
await addEntityToSearch(entity2);
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -499,7 +499,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
await addEntityToSearch(entity2);
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -547,7 +547,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
);
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -610,7 +610,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -701,7 +701,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -756,7 +756,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -804,7 +804,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -958,7 +958,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -1113,7 +1113,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -1174,7 +1174,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -1273,7 +1273,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -1353,7 +1353,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -1382,7 +1382,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -1503,7 +1503,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -1567,7 +1567,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -1718,7 +1718,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
await catalog.removeEntityByUid(uid);
|
||||
@@ -1768,7 +1768,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
});
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -1827,7 +1827,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
});
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
@@ -1876,7 +1876,7 @@ describe('DefaultEntitiesCatalog', () => {
|
||||
});
|
||||
const catalog = new DefaultEntitiesCatalog({
|
||||
database: knex,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
stitcher,
|
||||
});
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { NotFoundError } from '@backstage/errors';
|
||||
import type { Location } from '@backstage/catalog-client';
|
||||
@@ -78,7 +77,7 @@ describe('createRouter readonly disabled', () => {
|
||||
entitiesCatalog,
|
||||
locationService,
|
||||
orchestrator,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
refreshService,
|
||||
config: new ConfigReader(undefined),
|
||||
permissionIntegrationRouter: express.Router(),
|
||||
@@ -869,7 +868,7 @@ describe('createRouter readonly enabled', () => {
|
||||
const router = await createRouter({
|
||||
entitiesCatalog,
|
||||
locationService,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
config: new ConfigReader({
|
||||
catalog: {
|
||||
readonly: true,
|
||||
@@ -1079,7 +1078,7 @@ describe('NextRouter permissioning', () => {
|
||||
const router = await createRouter({
|
||||
entitiesCatalog,
|
||||
locationService,
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
refreshService,
|
||||
config: new ConfigReader(undefined),
|
||||
permissionIntegrationRouter: createPermissionIntegrationRouter({
|
||||
|
||||
@@ -14,8 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { TestDatabases } from '@backstage/backend-test-utils';
|
||||
import { TestDatabases, mockServices } from '@backstage/backend-test-utils';
|
||||
import { Entity } from '@backstage/catalog-model';
|
||||
import { applyDatabaseMigrations } from '../database/migrations';
|
||||
import {
|
||||
@@ -31,7 +30,7 @@ jest.setTimeout(60_000);
|
||||
|
||||
describe('Stitcher', () => {
|
||||
const databases = TestDatabases.create();
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
it.each(databases.eachSupportedId())(
|
||||
'runs the happy path for %p',
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { DatabaseManager, getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
Entity,
|
||||
EntityPolicies,
|
||||
@@ -55,6 +54,7 @@ import { RefreshOptions, RefreshService } from '../service/types';
|
||||
import { DefaultStitcher } from '../stitching/DefaultStitcher';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
import { DatabaseManager } from '@backstage/backend-common';
|
||||
|
||||
const voidLogger = mockServices.logger.mock();
|
||||
|
||||
@@ -223,7 +223,7 @@ class TestHarness {
|
||||
},
|
||||
},
|
||||
);
|
||||
const logger = options?.logger ?? getVoidLogger();
|
||||
const logger = options?.logger ?? mockServices.logger.mock();
|
||||
const db =
|
||||
options?.db ??
|
||||
(await DatabaseManager.fromConfig(config, { logger })
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import express from 'express';
|
||||
import request from 'supertest';
|
||||
@@ -38,7 +37,7 @@ describe('createRouter', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
const router = await createRouter({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
config: new ConfigReader({
|
||||
healthCheck: {
|
||||
endpoint: [
|
||||
|
||||
+4
-4
@@ -19,12 +19,12 @@ import {
|
||||
ReceiveMessageCommand,
|
||||
SQSClient,
|
||||
} from '@aws-sdk/client-sqs';
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { PluginTaskScheduler } from '@backstage/backend-tasks';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { TestEventsService } from '@backstage/plugin-events-backend-test-utils';
|
||||
import { mockClient } from 'aws-sdk-client-mock';
|
||||
import { AwsSqsConsumingEventPublisher } from './AwsSqsConsumingEventPublisher';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
describe('AwsSqsConsumingEventPublisher', () => {
|
||||
it('creates one publisher instance per configured topic', async () => {
|
||||
@@ -52,7 +52,7 @@ describe('AwsSqsConsumingEventPublisher', () => {
|
||||
},
|
||||
},
|
||||
});
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const events = new TestEventsService();
|
||||
const scheduler = {
|
||||
scheduleTask: jest.fn(),
|
||||
@@ -86,7 +86,7 @@ describe('AwsSqsConsumingEventPublisher', () => {
|
||||
},
|
||||
},
|
||||
});
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const events = new TestEventsService();
|
||||
const scheduler = {
|
||||
scheduleTask: jest.fn(),
|
||||
@@ -134,7 +134,7 @@ describe('AwsSqsConsumingEventPublisher', () => {
|
||||
},
|
||||
},
|
||||
});
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const events = new TestEventsService();
|
||||
let taskFn: (() => Promise<void>) | undefined = undefined;
|
||||
const scheduler = {
|
||||
|
||||
@@ -14,12 +14,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { TestEventSubscriber } from '@backstage/plugin-events-backend-test-utils';
|
||||
import { EventParams, EventSubscriber } from '@backstage/plugin-events-node';
|
||||
import { DefaultEventBroker } from './DefaultEventBroker';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
describe('DefaultEventBroker', () => {
|
||||
it('passes events to interested subscribers', () => {
|
||||
|
||||
@@ -14,15 +14,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
TestEventBroker,
|
||||
TestEventPublisher,
|
||||
TestEventSubscriber,
|
||||
} from '@backstage/plugin-events-backend-test-utils';
|
||||
import { EventsBackend } from './EventsBackend';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
import { loggerToWinstonLogger } from '@backstage/backend-common';
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
describe('EventsBackend', () => {
|
||||
it('wires up all components', async () => {
|
||||
@@ -30,7 +31,7 @@ describe('EventsBackend', () => {
|
||||
const publisher1 = new TestEventPublisher();
|
||||
const publisher2 = new TestEventPublisher();
|
||||
|
||||
await new EventsBackend(logger)
|
||||
await new EventsBackend(loggerToWinstonLogger(logger))
|
||||
.setEventBroker(eventBroker)
|
||||
.addPublishers(publisher1, [publisher2])
|
||||
.addSubscribers(new TestEventSubscriber('one', ['topicA']), [
|
||||
|
||||
@@ -14,16 +14,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { TestEventsService } from '@backstage/plugin-events-backend-test-utils';
|
||||
import express from 'express';
|
||||
import Router from 'express-promise-router';
|
||||
import request from 'supertest';
|
||||
import { HttpPostIngressEventPublisher } from './HttpPostIngressEventPublisher';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
describe('HttpPostIngressEventPublisher', () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
it('should set up routes correctly', async () => {
|
||||
const config = new ConfigReader({
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/backend-common": "workspace:^",
|
||||
"@backstage/backend-test-utils": "workspace:^",
|
||||
"@backstage/cli": "workspace:^"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { DefaultEventsService } from './DefaultEventsService';
|
||||
import { EventParams } from './EventParams';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
describe('DefaultEventsService', () => {
|
||||
it('passes events to interested subscribers', async () => {
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
"yn": "^4.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/backend-test-utils": "workspace:^",
|
||||
"@backstage/cli": "workspace:^",
|
||||
"@types/supertest": "^2.0.8",
|
||||
"@types/uuid": "^9.0.0",
|
||||
|
||||
@@ -14,19 +14,19 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { DefaultIdentityClient } from '@backstage/plugin-auth-node';
|
||||
import express from 'express';
|
||||
import request from 'supertest';
|
||||
|
||||
import { createRouter } from './router';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
describe('createRouter', () => {
|
||||
let app: express.Express;
|
||||
|
||||
beforeAll(async () => {
|
||||
const router = await createRouter({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
identity: {} as DefaultIdentityClient,
|
||||
});
|
||||
app = express().use(router);
|
||||
|
||||
@@ -15,10 +15,10 @@
|
||||
*/
|
||||
|
||||
import { AccessToken, TokenCredential } from '@azure/identity';
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { AzureIdentityStrategy } from './AzureIdentityStrategy';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
class StaticTokenCredential implements TokenCredential {
|
||||
private count: number = 0;
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { Config, ConfigReader } from '@backstage/config';
|
||||
import { CatalogApi } from '@backstage/catalog-client';
|
||||
import { ANNOTATION_KUBERNETES_AUTH_PROVIDER } from '@backstage/plugin-kubernetes-common';
|
||||
@@ -65,7 +64,7 @@ describe('getCombinedClusterSupplier', () => {
|
||||
config,
|
||||
catalogApi,
|
||||
mockStrategy,
|
||||
getVoidLogger(),
|
||||
mockServices.logger.mock(),
|
||||
undefined,
|
||||
auth,
|
||||
);
|
||||
@@ -109,7 +108,7 @@ describe('getCombinedClusterSupplier', () => {
|
||||
config,
|
||||
catalogApi,
|
||||
new DispatchStrategy({ authStrategyMap: {} }),
|
||||
getVoidLogger(),
|
||||
mockServices.logger.mock(),
|
||||
undefined,
|
||||
auth,
|
||||
),
|
||||
@@ -119,7 +118,7 @@ describe('getCombinedClusterSupplier', () => {
|
||||
});
|
||||
|
||||
it('logs a warning when two clusters have the same name', async () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const warn = jest.spyOn(logger, 'warn');
|
||||
const config: Config = new ConfigReader(
|
||||
{
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
ClusterDetails,
|
||||
CustomResource,
|
||||
@@ -27,7 +26,10 @@ import { KubernetesFanOutHandler } from './KubernetesFanOutHandler';
|
||||
import { KubernetesClientBasedFetcher } from './KubernetesFetcher';
|
||||
import { rest } from 'msw';
|
||||
import { setupServer } from 'msw/node';
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import {
|
||||
FetchResponse,
|
||||
KubernetesRequestAuth,
|
||||
@@ -189,7 +191,7 @@ describe('KubernetesFanOutHandler', () => {
|
||||
|
||||
const getKubernetesFanOutHandler = (customResources: CustomResource[]) => {
|
||||
return new KubernetesFanOutHandler({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
fetcher: {
|
||||
fetchObjectsForService,
|
||||
fetchPodMetricsByNamespaces,
|
||||
@@ -1169,7 +1171,7 @@ describe('KubernetesFanOutHandler', () => {
|
||||
],
|
||||
}),
|
||||
};
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
const kubernetesFanOutHandler = new KubernetesFanOutHandler({
|
||||
logger,
|
||||
fetcher: new KubernetesClientBasedFetcher({ logger }),
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
|
||||
import { ANNOTATION_KUBERNETES_AUTH_PROVIDER } from '@backstage/plugin-kubernetes-common';
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { KubernetesClientBasedFetcher } from './KubernetesFetcher';
|
||||
import { ObjectToFetch } from '../types/types';
|
||||
import {
|
||||
@@ -28,6 +27,7 @@ import {
|
||||
import { setupServer } from 'msw/node';
|
||||
import {
|
||||
createMockDirectory,
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { Config } from '@kubernetes/client-node';
|
||||
@@ -115,7 +115,7 @@ describe('KubernetesFetcher', () => {
|
||||
|
||||
describe('fetchObjectsForService', () => {
|
||||
let sut: KubernetesClientBasedFetcher;
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
const testErrorResponse = async (
|
||||
errorResponse: any,
|
||||
@@ -1095,7 +1095,7 @@ describe('KubernetesFetcher', () => {
|
||||
|
||||
beforeEach(() => {
|
||||
sut = new KubernetesClientBasedFetcher({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -16,9 +16,10 @@
|
||||
|
||||
import 'buffer';
|
||||
import { resolve as resolvePath } from 'path';
|
||||
import { errorHandler, getVoidLogger } from '@backstage/backend-common';
|
||||
import { errorHandler } from '@backstage/backend-common';
|
||||
import {
|
||||
createMockDirectory,
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { NotFoundError } from '@backstage/errors';
|
||||
@@ -70,7 +71,7 @@ describe('KubernetesProxy', () => {
|
||||
let proxy: KubernetesProxy;
|
||||
let authStrategy: jest.Mocked<AuthenticationStrategy>;
|
||||
const worker = setupServer();
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
const clusterSupplier: jest.Mocked<KubernetesClustersSupplier> = {
|
||||
getClusters: jest.fn<
|
||||
@@ -549,7 +550,7 @@ describe('KubernetesProxy', () => {
|
||||
};
|
||||
|
||||
proxy = new KubernetesProxy({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
clusterSupplier: clusterSupplier,
|
||||
authStrategy: strategy,
|
||||
discovery: mockDisocveryApi,
|
||||
@@ -671,7 +672,7 @@ describe('KubernetesProxy', () => {
|
||||
|
||||
it('returns a response with a localKubectlProxy auth provider configuration', async () => {
|
||||
proxy = new KubernetesProxy({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
clusterSupplier: new LocalKubectlProxyClusterLocator(),
|
||||
authStrategy: new AnonymousStrategy(),
|
||||
discovery: mockDisocveryApi,
|
||||
|
||||
@@ -32,15 +32,15 @@ import {
|
||||
KubernetesRequestAuth,
|
||||
} from '@backstage/plugin-kubernetes-common';
|
||||
import { PinnipedHelper, PinnipedParameters } from './PinnipedHelper';
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { HEADER_KUBERNETES_CLUSTER } from '@backstage/plugin-kubernetes-backend';
|
||||
import { JsonObject } from '@backstage/types';
|
||||
import { rest } from 'msw';
|
||||
import { setupServer } from 'msw/node';
|
||||
import { loggerToWinstonLogger } from '@backstage/backend-common';
|
||||
|
||||
describe('Pinniped - tokenCredentialRequest', () => {
|
||||
let app: ExtendedHttpServer;
|
||||
const logger = getVoidLogger();
|
||||
const logger = loggerToWinstonLogger(mockServices.logger.mock());
|
||||
let httpsRequest: jest.SpyInstance;
|
||||
const worker = setupServer();
|
||||
setupRequestMockHandlers(worker);
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
import {
|
||||
DatabaseManager,
|
||||
getVoidLogger,
|
||||
PluginDatabaseManager,
|
||||
} from '@backstage/backend-common';
|
||||
import express from 'express';
|
||||
@@ -53,7 +52,7 @@ describe('createRouter', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
const router = await createRouter({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
database: createDatabase(),
|
||||
discovery,
|
||||
signals: signalService,
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
import express from 'express';
|
||||
import request from 'supertest';
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { AuthorizeResult } from '@backstage/plugin-permission-common';
|
||||
import {
|
||||
ApplyConditionsRequestEntry,
|
||||
@@ -67,7 +66,7 @@ describe('createRouter', () => {
|
||||
beforeAll(async () => {
|
||||
const router = await createRouter({
|
||||
config: new ConfigReader({ permission: { enabled: true } }),
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
discovery: mockServices.discovery(),
|
||||
auth: mockServices.auth(),
|
||||
httpAuth: mockServices.httpAuth({
|
||||
|
||||
@@ -29,7 +29,6 @@ import {
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import {
|
||||
getVoidLogger,
|
||||
PluginEndpointDiscovery,
|
||||
ServerTokenManager,
|
||||
} from '@backstage/backend-common';
|
||||
@@ -62,7 +61,7 @@ const config = new ConfigReader({
|
||||
permission: { enabled: true },
|
||||
backend: { auth: { keys: [{ secret: 'a-secret-key' }] } },
|
||||
});
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
describe('ServerPermissionClient', () => {
|
||||
setupRequestMockHandlers(server);
|
||||
|
||||
@@ -14,7 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger, HostDiscovery } from '@backstage/backend-common';
|
||||
import {
|
||||
HostDiscovery,
|
||||
loggerToWinstonLogger,
|
||||
} from '@backstage/backend-common';
|
||||
import {
|
||||
ConfigSources,
|
||||
MutableConfigSource,
|
||||
@@ -25,6 +28,7 @@ import { rest } from 'msw';
|
||||
import { setupServer } from 'msw/node';
|
||||
import request from 'supertest';
|
||||
import { createRouter } from './router';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
// this test is stored in its own file to work around the mocked
|
||||
// http-proxy-middleware module used in the rest of the tests
|
||||
@@ -57,7 +61,7 @@ describe('createRouter reloadable configuration', () => {
|
||||
afterEach(() => server.resetHandlers());
|
||||
|
||||
it('should be able to observe the config', async () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = loggerToWinstonLogger(mockServices.logger.mock());
|
||||
|
||||
// Grab the subscriber function and use mutable config data to mock a config file change
|
||||
const mutableConfigSource = MutableConfigSource.create({ data: {} });
|
||||
|
||||
@@ -14,7 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger, HostDiscovery } from '@backstage/backend-common';
|
||||
import {
|
||||
HostDiscovery,
|
||||
loggerToWinstonLogger,
|
||||
} from '@backstage/backend-common';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { Request, Response } from 'express';
|
||||
@@ -37,7 +40,7 @@ const mockCreateProxyMiddleware = createProxyMiddleware as jest.MockedFunction<
|
||||
|
||||
describe('createRouter', () => {
|
||||
describe('where all proxy config are valid', () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = loggerToWinstonLogger(mockServices.logger.mock());
|
||||
const config = new ConfigReader({
|
||||
backend: {
|
||||
baseUrl: 'https://example.com:7007',
|
||||
@@ -130,7 +133,7 @@ describe('createRouter', () => {
|
||||
|
||||
describe('where buildMiddleware would fail', () => {
|
||||
it('throws an error if skip failures is not set', async () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = loggerToWinstonLogger(mockServices.logger.mock());
|
||||
logger.warn = jest.fn();
|
||||
const config = new ConfigReader({
|
||||
backend: {
|
||||
@@ -165,7 +168,7 @@ describe('createRouter', () => {
|
||||
});
|
||||
|
||||
it('works if skip failures is set', async () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = loggerToWinstonLogger(mockServices.logger.mock());
|
||||
logger.warn = jest.fn();
|
||||
const config = new ConfigReader({
|
||||
backend: {
|
||||
@@ -201,7 +204,7 @@ describe('createRouter', () => {
|
||||
});
|
||||
|
||||
describe('buildMiddleware', () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = loggerToWinstonLogger(mockServices.logger.mock());
|
||||
|
||||
beforeEach(() => {
|
||||
mockCreateProxyMiddleware.mockClear();
|
||||
|
||||
+3
-3
@@ -14,12 +14,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { createConfluenceToMarkdownAction } from './confluenceToMarkdown';
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { UrlReader } from '@backstage/backend-common';
|
||||
import { UrlReader, loggerToWinstonLogger } from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { ScmIntegrations } from '@backstage/integration';
|
||||
import {
|
||||
createMockDirectory,
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { rest } from 'msw';
|
||||
@@ -57,7 +57,7 @@ describe('confluence:transform:markdown examples', () => {
|
||||
repoUrl: string;
|
||||
}>;
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = loggerToWinstonLogger(mockServices.logger.mock());
|
||||
jest.spyOn(logger, 'info');
|
||||
|
||||
const mockDir = createMockDirectory();
|
||||
|
||||
+3
-3
@@ -15,12 +15,12 @@
|
||||
*/
|
||||
|
||||
import { createConfluenceToMarkdownAction } from './confluenceToMarkdown';
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { UrlReader } from '@backstage/backend-common';
|
||||
import { UrlReader, loggerToWinstonLogger } from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { ScmIntegrations } from '@backstage/integration';
|
||||
import {
|
||||
createMockDirectory,
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import type { ActionContext } from '@backstage/plugin-scaffolder-node';
|
||||
@@ -56,7 +56,7 @@ describe('confluence:transform:markdown', () => {
|
||||
repoUrl: string;
|
||||
}>;
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = loggerToWinstonLogger(mockServices.logger.mock());
|
||||
jest.spyOn(logger, 'info');
|
||||
|
||||
const mockDir = createMockDirectory();
|
||||
|
||||
+2
-1
@@ -53,12 +53,13 @@ const mockGit = {
|
||||
};
|
||||
|
||||
jest.mock('@backstage/backend-common', () => ({
|
||||
loggerToWinstonLogger: jest.requireActual('@backstage/backend-common')
|
||||
.loggerToWinstonLogger,
|
||||
Git: {
|
||||
fromAuth() {
|
||||
return mockGit;
|
||||
},
|
||||
},
|
||||
getVoidLogger: jest.requireActual('@backstage/backend-common').getVoidLogger,
|
||||
}));
|
||||
|
||||
jest.mock('./helpers', () => {
|
||||
|
||||
@@ -27,12 +27,13 @@ const mockGit = {
|
||||
};
|
||||
|
||||
jest.mock('@backstage/backend-common', () => ({
|
||||
loggerToWinstonLogger: jest.requireActual('@backstage/backend-common')
|
||||
.loggerToWinstonLogger,
|
||||
Git: {
|
||||
fromAuth() {
|
||||
return mockGit;
|
||||
},
|
||||
},
|
||||
getVoidLogger: jest.requireActual('@backstage/backend-common').getVoidLogger,
|
||||
}));
|
||||
|
||||
jest.mock('./gitHelpers', () => {
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { NunjucksWorkflowRunner } from './NunjucksWorkflowRunner';
|
||||
import { TemplateActionRegistry } from '../actions';
|
||||
import { ScmIntegrations } from '@backstage/integration';
|
||||
@@ -37,11 +36,14 @@ import { RESOURCE_TYPE_SCAFFOLDER_ACTION } from '@backstage/plugin-scaffolder-co
|
||||
import {
|
||||
createMockDirectory,
|
||||
mockCredentials,
|
||||
mockServices,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import stripAnsi from 'strip-ansi';
|
||||
import { loggerToWinstonLogger } from '@backstage/backend-common';
|
||||
import { LoggerService } from '@backstage/backend-plugin-api';
|
||||
|
||||
describe('NunjucksWorkflowRunner', () => {
|
||||
const logger = getVoidLogger();
|
||||
let logger: LoggerService;
|
||||
let actionRegistry = new TemplateActionRegistry();
|
||||
let runner: NunjucksWorkflowRunner;
|
||||
let fakeActionHandler: jest.Mock;
|
||||
@@ -94,6 +96,7 @@ describe('NunjucksWorkflowRunner', () => {
|
||||
mockDir.clear();
|
||||
|
||||
jest.resetAllMocks();
|
||||
logger = mockServices.logger.mock();
|
||||
actionRegistry = new TemplateActionRegistry();
|
||||
fakeActionHandler = jest.fn();
|
||||
fakeTaskLog = jest.fn();
|
||||
@@ -173,7 +176,7 @@ describe('NunjucksWorkflowRunner', () => {
|
||||
actionRegistry,
|
||||
integrations,
|
||||
workingDirectory: mockDir.path,
|
||||
logger,
|
||||
logger: loggerToWinstonLogger(logger),
|
||||
permissions: mockedPermissionApi,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -14,7 +14,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger, DatabaseManager } from '@backstage/backend-common';
|
||||
import {
|
||||
DatabaseManager,
|
||||
loggerToWinstonLogger,
|
||||
} from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { TaskSpec } from '@backstage/plugin-scaffolder-common';
|
||||
import {
|
||||
@@ -23,6 +26,7 @@ import {
|
||||
} from '@backstage/plugin-scaffolder-node';
|
||||
import { DatabaseTaskStore } from './DatabaseTaskStore';
|
||||
import { StorageTaskBroker, TaskManager } from './StorageTaskBroker';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
async function createStore(): Promise<DatabaseTaskStore> {
|
||||
const manager = DatabaseManager.fromConfig(
|
||||
@@ -55,7 +59,7 @@ describe('StorageTaskBroker', () => {
|
||||
secrets: fakeSecrets,
|
||||
};
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = loggerToWinstonLogger(mockServices.logger.mock());
|
||||
it('should claim a dispatched work item', async () => {
|
||||
const broker = new StorageTaskBroker(storage, logger);
|
||||
await broker.dispatch(emptyTaskSpec);
|
||||
|
||||
@@ -15,7 +15,10 @@
|
||||
*/
|
||||
|
||||
import os from 'os';
|
||||
import { DatabaseManager, getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
DatabaseManager,
|
||||
loggerToWinstonLogger,
|
||||
} from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { DatabaseTaskStore } from './DatabaseTaskStore';
|
||||
import { StorageTaskBroker } from './StorageTaskBroker';
|
||||
@@ -31,6 +34,7 @@ import {
|
||||
import { WorkflowRunner } from './types';
|
||||
import ObservableImpl from 'zen-observable';
|
||||
import waitForExpect from 'wait-for-expect';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
jest.mock('./NunjucksWorkflowRunner');
|
||||
const MockedNunjucksWorkflowRunner =
|
||||
@@ -74,7 +78,7 @@ describe('TaskWorker', () => {
|
||||
MockedNunjucksWorkflowRunner.mockImplementation(() => workflowRunner);
|
||||
});
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = loggerToWinstonLogger(mockServices.logger.mock());
|
||||
|
||||
it('should call the default workflow runner when the apiVersion is beta3', async () => {
|
||||
const broker = new StorageTaskBroker(storage, logger);
|
||||
@@ -167,7 +171,7 @@ describe('Concurrent TaskWorker', () => {
|
||||
MockedNunjucksWorkflowRunner.mockImplementation(() => workflowRunner);
|
||||
});
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = loggerToWinstonLogger(mockServices.logger.mock());
|
||||
|
||||
it('should be able to run multiple tasks at once', async () => {
|
||||
const broker = new StorageTaskBroker(storage, logger);
|
||||
@@ -228,7 +232,7 @@ describe('Cancellable TaskWorker', () => {
|
||||
MockedNunjucksWorkflowRunner.mockImplementation(() => workflowRunner);
|
||||
});
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = loggerToWinstonLogger(mockServices.logger.mock());
|
||||
|
||||
it('should be able to cancel the running task', async () => {
|
||||
const taskBroker = new StorageTaskBroker(storage, logger);
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
import {
|
||||
DatabaseManager,
|
||||
getVoidLogger,
|
||||
loggerToWinstonLogger,
|
||||
PluginDatabaseManager,
|
||||
UrlReaders,
|
||||
} from '@backstage/backend-common';
|
||||
@@ -76,7 +76,7 @@ function createDatabase(): PluginDatabaseManager {
|
||||
}
|
||||
|
||||
const mockUrlReader = UrlReaders.default({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
config: new ConfigReader({}),
|
||||
});
|
||||
|
||||
@@ -183,7 +183,7 @@ describe('createRouter', () => {
|
||||
|
||||
describe('not providing an identity api', () => {
|
||||
beforeEach(async () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = loggerToWinstonLogger(mockServices.logger.mock());
|
||||
const databaseTaskStore = await DatabaseTaskStore.create({
|
||||
database: createDatabase(),
|
||||
});
|
||||
@@ -238,7 +238,7 @@ describe('createRouter', () => {
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
describe('GET /v2/actions', () => {
|
||||
@@ -690,7 +690,7 @@ data: {"id":1,"taskId":"a-random-id","type":"completion","createdAt":"","body":{
|
||||
|
||||
describe('providing an identity api', () => {
|
||||
beforeEach(async () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = loggerToWinstonLogger(mockServices.logger.mock());
|
||||
const databaseTaskStore = await DatabaseTaskStore.create({
|
||||
database: createDatabase(),
|
||||
});
|
||||
|
||||
@@ -15,10 +15,11 @@
|
||||
*/
|
||||
|
||||
import { PassThrough } from 'stream';
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { loggerToWinstonLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
createMockDirectory,
|
||||
mockCredentials,
|
||||
mockServices,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { JsonObject } from '@backstage/types';
|
||||
import { ActionContext } from '@backstage/plugin-scaffolder-node';
|
||||
@@ -37,7 +38,7 @@ export const createMockActionContext = <
|
||||
): ActionContext<TActionInput, TActionOutput> => {
|
||||
const credentials = mockCredentials.user();
|
||||
const defaultContext = {
|
||||
logger: getVoidLogger(),
|
||||
logger: loggerToWinstonLogger(mockServices.logger.mock()),
|
||||
logStream: new PassThrough(),
|
||||
output: jest.fn(),
|
||||
createTemporaryDirectory: jest.fn(),
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { loggerToWinstonLogger } from '@backstage/backend-common';
|
||||
import { Git } from '../scm';
|
||||
import {
|
||||
commitAndPushRepo,
|
||||
@@ -24,6 +24,7 @@ import {
|
||||
createBranch,
|
||||
cloneRepo,
|
||||
} from './gitHelpers';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
jest.mock('../scm', () => ({
|
||||
Git: {
|
||||
@@ -40,14 +41,13 @@ jest.mock('../scm', () => ({
|
||||
clone: jest.fn(),
|
||||
}),
|
||||
},
|
||||
getVoidLogger: jest.requireActual('@backstage/backend-common').getVoidLogger,
|
||||
}));
|
||||
jest.mock('fs-extra', () => ({
|
||||
cpSync: jest.fn(),
|
||||
}));
|
||||
|
||||
const mockedGit = Git.fromAuth({
|
||||
logger: getVoidLogger(),
|
||||
logger: loggerToWinstonLogger(mockServices.logger.mock()),
|
||||
});
|
||||
|
||||
describe('initRepoAndPush', () => {
|
||||
@@ -64,7 +64,7 @@ describe('initRepoAndPush', () => {
|
||||
username: 'test-user',
|
||||
password: 'test-password',
|
||||
},
|
||||
logger: getVoidLogger(),
|
||||
logger: loggerToWinstonLogger(mockServices.logger.mock()),
|
||||
});
|
||||
});
|
||||
|
||||
@@ -120,7 +120,7 @@ describe('initRepoAndPush', () => {
|
||||
auth: {
|
||||
token: 'test-token',
|
||||
},
|
||||
logger: getVoidLogger(),
|
||||
logger: loggerToWinstonLogger(mockServices.logger.mock()),
|
||||
});
|
||||
|
||||
expect(mockedGit.init).toHaveBeenCalledWith({
|
||||
@@ -138,7 +138,7 @@ describe('initRepoAndPush', () => {
|
||||
username: 'test-user',
|
||||
password: 'test-password',
|
||||
},
|
||||
logger: getVoidLogger(),
|
||||
logger: loggerToWinstonLogger(mockServices.logger.mock()),
|
||||
});
|
||||
|
||||
expect(mockedGit.init).toHaveBeenCalledWith({
|
||||
@@ -159,7 +159,7 @@ describe('initRepoAndPush', () => {
|
||||
username: 'test-user',
|
||||
password: 'test-password',
|
||||
},
|
||||
logger: getVoidLogger(),
|
||||
logger: loggerToWinstonLogger(mockServices.logger.mock()),
|
||||
});
|
||||
|
||||
expect(mockedGit.commit).toHaveBeenCalledWith({
|
||||
@@ -190,7 +190,7 @@ describe('commitAndPushRepo', () => {
|
||||
username: 'test-user',
|
||||
password: 'test-password',
|
||||
},
|
||||
logger: getVoidLogger(),
|
||||
logger: loggerToWinstonLogger(mockServices.logger.mock()),
|
||||
commitMessage: 'commit message',
|
||||
});
|
||||
});
|
||||
@@ -246,7 +246,7 @@ describe('commitAndPushRepo', () => {
|
||||
username: 'test-user',
|
||||
password: 'test-password',
|
||||
},
|
||||
logger: getVoidLogger(),
|
||||
logger: loggerToWinstonLogger(mockServices.logger.mock()),
|
||||
commitMessage: 'commit message',
|
||||
branch: 'otherbranch',
|
||||
});
|
||||
@@ -269,7 +269,7 @@ describe('commitAndPushRepo', () => {
|
||||
username: 'test-user',
|
||||
password: 'test-password',
|
||||
},
|
||||
logger: getVoidLogger(),
|
||||
logger: loggerToWinstonLogger(mockServices.logger.mock()),
|
||||
commitMessage: 'commit message',
|
||||
remoteRef: 'refs/for/master',
|
||||
});
|
||||
@@ -297,7 +297,7 @@ describe('commitAndPushRepo', () => {
|
||||
username: 'test-user',
|
||||
password: 'test-password',
|
||||
},
|
||||
logger: getVoidLogger(),
|
||||
logger: loggerToWinstonLogger(mockServices.logger.mock()),
|
||||
branch: 'master',
|
||||
});
|
||||
|
||||
@@ -560,7 +560,7 @@ describe('commitAndPushBranch', () => {
|
||||
name: 'gitCommitter',
|
||||
email: 'gitCommitter@backstage.io',
|
||||
},
|
||||
logger: getVoidLogger(),
|
||||
logger: loggerToWinstonLogger(mockServices.logger.mock()),
|
||||
});
|
||||
|
||||
expect(mockedGit.commit).toHaveBeenCalledWith({
|
||||
|
||||
@@ -62,6 +62,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/backend-common": "workspace:^",
|
||||
"@backstage/backend-test-utils": "workspace:^",
|
||||
"@backstage/cli": "workspace:^",
|
||||
"@elastic/elasticsearch-mock": "^1.0.0",
|
||||
"@short.io/opensearch-mock": "^0.3.1"
|
||||
|
||||
+5
-5
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { errors } from '@elastic/elasticsearch';
|
||||
import Mock from '@elastic/elasticsearch-mock';
|
||||
@@ -26,6 +25,7 @@ import {
|
||||
encodePageCursor,
|
||||
} from './ElasticSearchSearchEngine';
|
||||
import { ElasticSearchSearchEngineIndexer } from './ElasticSearchSearchEngineIndexer';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
jest.mock('uuid', () => ({ v4: () => 'tag' }));
|
||||
|
||||
@@ -86,14 +86,14 @@ describe('ElasticSearchSearchEngine', () => {
|
||||
options,
|
||||
'search',
|
||||
'',
|
||||
getVoidLogger(),
|
||||
mockServices.logger.mock(),
|
||||
1000,
|
||||
);
|
||||
inspectableSearchEngine = new ElasticSearchSearchEngineForTranslatorTests(
|
||||
options,
|
||||
'search',
|
||||
'',
|
||||
getVoidLogger(),
|
||||
mockServices.logger.mock(),
|
||||
1000,
|
||||
);
|
||||
// eslint-disable-next-line dot-notation
|
||||
@@ -915,7 +915,7 @@ describe('ElasticSearchSearchEngine', () => {
|
||||
const getOptional = jest.spyOn(config, 'getOptional');
|
||||
|
||||
await ElasticSearchSearchEngine.fromConfig({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
config,
|
||||
});
|
||||
|
||||
@@ -940,7 +940,7 @@ describe('ElasticSearchSearchEngine', () => {
|
||||
expect(
|
||||
async () =>
|
||||
await ElasticSearchSearchEngine.fromConfig({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
config,
|
||||
}),
|
||||
).not.toThrow();
|
||||
|
||||
+4
-4
@@ -14,12 +14,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { TestPipeline } from '@backstage/plugin-search-backend-node';
|
||||
import Mock from '@elastic/elasticsearch-mock';
|
||||
import { range } from 'lodash';
|
||||
import { ElasticSearchClientWrapper } from './ElasticSearchClientWrapper';
|
||||
import { ElasticSearchSearchEngineIndexer } from './ElasticSearchSearchEngineIndexer';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
const mock = new Mock();
|
||||
const clientWrapper = ElasticSearchClientWrapper.fromClientOptions({
|
||||
@@ -43,7 +43,7 @@ describe('ElasticSearchSearchEngineIndexer', () => {
|
||||
indexPrefix: '',
|
||||
indexSeparator: '-index__',
|
||||
alias: 'some-type-index__search',
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
elasticSearchClientWrapper: clientWrapper,
|
||||
batchSize: 1000,
|
||||
skipRefresh: false,
|
||||
@@ -270,7 +270,7 @@ describe('ElasticSearchSearchEngineIndexer', () => {
|
||||
indexPrefix: '',
|
||||
indexSeparator: '-index__',
|
||||
alias: 'some-type-index__search',
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
elasticSearchClientWrapper: mockClientWrapper,
|
||||
batchSize: 1000,
|
||||
skipRefresh: false,
|
||||
@@ -292,7 +292,7 @@ describe('ElasticSearchSearchEngineIndexer', () => {
|
||||
indexPrefix: '',
|
||||
indexSeparator: '-index__',
|
||||
alias: 'some-type-index__search',
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
elasticSearchClientWrapper: clientWrapper,
|
||||
batchSize: 1000,
|
||||
skipRefresh: true,
|
||||
|
||||
+5
-3
@@ -14,19 +14,21 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
import {
|
||||
getVoidLogger,
|
||||
PluginEndpointDiscovery,
|
||||
TokenManager,
|
||||
} from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { TestPipeline } from '@backstage/plugin-search-backend-node';
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { rest } from 'msw';
|
||||
import { setupServer } from 'msw/node';
|
||||
import { Readable } from 'stream';
|
||||
import { ToolDocumentCollatorFactory } from './ToolDocumentCollatorFactory';
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
const mockTools = {
|
||||
tools: [
|
||||
|
||||
+5
-3
@@ -13,19 +13,21 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import {
|
||||
StackOverflowQuestionsCollatorFactory,
|
||||
StackOverflowQuestionsCollatorFactoryOptions,
|
||||
} from './StackOverflowQuestionsCollatorFactory';
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { TestPipeline } from '@backstage/plugin-search-backend-node';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { Readable } from 'stream';
|
||||
import { setupServer } from 'msw/node';
|
||||
import { rest } from 'msw';
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
const mockQuestion = {
|
||||
items: [
|
||||
|
||||
+6
-4
@@ -14,14 +14,16 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
import {
|
||||
getVoidLogger,
|
||||
PluginEndpointDiscovery,
|
||||
TokenManager,
|
||||
} from '@backstage/backend-common';
|
||||
import { Entity } from '@backstage/catalog-model';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { TestPipeline } from '@backstage/plugin-search-backend-node';
|
||||
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
|
||||
import {
|
||||
mockServices,
|
||||
setupRequestMockHandlers,
|
||||
} from '@backstage/backend-test-utils';
|
||||
import { rest } from 'msw';
|
||||
import { setupServer } from 'msw/node';
|
||||
import { Readable } from 'stream';
|
||||
@@ -29,7 +31,7 @@ import { DefaultTechDocsCollatorFactory } from './DefaultTechDocsCollatorFactory
|
||||
import { defaultTechDocsCollatorEntityTransformer } from './defaultTechDocsCollatorEntityTransformer';
|
||||
import { TechDocsCollatorEntityTransformer } from './TechDocsCollatorEntityTransformer';
|
||||
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
const mockSearchDocIndex = {
|
||||
config: {
|
||||
@@ -89,8 +91,8 @@ describe('DefaultTechDocsCollatorFactory', () => {
|
||||
authenticate: jest.fn(),
|
||||
};
|
||||
const options = {
|
||||
logger,
|
||||
discovery: mockDiscoveryApi,
|
||||
logger: getVoidLogger(),
|
||||
tokenManager: mockTokenManager,
|
||||
};
|
||||
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/backend-common": "workspace:^",
|
||||
"@backstage/backend-test-utils": "workspace:^",
|
||||
"@backstage/cli": "workspace:^",
|
||||
"@types/ndjson": "^2.0.1"
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { TaskInvocationDefinition, TaskRunner } from '@backstage/backend-tasks';
|
||||
import {
|
||||
DocumentCollatorFactory,
|
||||
@@ -23,6 +22,7 @@ import {
|
||||
import { Readable, Transform } from 'stream';
|
||||
import { IndexBuilder } from './IndexBuilder';
|
||||
import { LunrSearchEngine, SearchEngine } from './index';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
class TestDocumentCollatorFactory implements DocumentCollatorFactory {
|
||||
readonly type: string = 'anything';
|
||||
@@ -57,7 +57,7 @@ describe('IndexBuilder', () => {
|
||||
let testScheduledTaskRunner: TaskRunner;
|
||||
|
||||
beforeEach(() => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
testScheduledTaskRunner = {
|
||||
run: async (task: TaskInvocationDefinition & { fn: () => void }) => {
|
||||
task.fn();
|
||||
|
||||
@@ -14,14 +14,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import { Scheduler } from './index';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
describe('Scheduler', () => {
|
||||
let testScheduler: Scheduler;
|
||||
|
||||
beforeEach(() => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
testScheduler = new Scheduler({
|
||||
logger,
|
||||
});
|
||||
|
||||
+2
-2
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
getVoidLogger,
|
||||
ReadUrlResponse,
|
||||
UrlReader,
|
||||
UrlReaders,
|
||||
@@ -24,10 +23,11 @@ import { ConfigReader } from '@backstage/config';
|
||||
import { Readable } from 'stream';
|
||||
import { NewlineDelimitedJsonCollatorFactory } from './NewlineDelimitedJsonCollatorFactory';
|
||||
import { TestPipeline } from '../test-utils';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
describe('DefaultCatalogCollatorFactory', () => {
|
||||
const config = new ConfigReader({});
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
|
||||
it('has expected type', () => {
|
||||
const factory = NewlineDelimitedJsonCollatorFactory.fromConfig(config, {
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { getVoidLogger } from '@backstage/backend-common';
|
||||
import lunr from 'lunr';
|
||||
import { IndexableDocument } from '@backstage/plugin-search-common';
|
||||
import {
|
||||
@@ -27,6 +26,7 @@ import {
|
||||
import { LunrSearchEngineIndexer } from './LunrSearchEngineIndexer';
|
||||
import { SearchEngine } from '../types';
|
||||
import { TestPipeline } from '../test-utils';
|
||||
import { mockServices } from '@backstage/backend-test-utils';
|
||||
|
||||
/**
|
||||
* Just used to test the default translator shipped with LunrSearchEngine.
|
||||
@@ -77,7 +77,9 @@ describe('LunrSearchEngine', () => {
|
||||
let testLunrSearchEngine: SearchEngine;
|
||||
|
||||
beforeEach(() => {
|
||||
testLunrSearchEngine = new LunrSearchEngine({ logger: getVoidLogger() });
|
||||
testLunrSearchEngine = new LunrSearchEngine({
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
@@ -107,7 +109,7 @@ describe('LunrSearchEngine', () => {
|
||||
|
||||
it('should return translated query', async () => {
|
||||
const inspectableSearchEngine = new LunrSearchEngineForTests({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
const translatorUnderTest = inspectableSearchEngine.getTranslator();
|
||||
|
||||
@@ -149,7 +151,7 @@ describe('LunrSearchEngine', () => {
|
||||
|
||||
it('should have default offset and limit', async () => {
|
||||
const inspectableSearchEngine = new LunrSearchEngineForTests({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
const translatorUnderTest = inspectableSearchEngine.getTranslator();
|
||||
|
||||
@@ -190,7 +192,7 @@ describe('LunrSearchEngine', () => {
|
||||
|
||||
it('should return translated query with 1 filter', async () => {
|
||||
const inspectableSearchEngine = new LunrSearchEngineForTests({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
const translatorUnderTest = inspectableSearchEngine.getTranslator();
|
||||
|
||||
@@ -235,7 +237,7 @@ describe('LunrSearchEngine', () => {
|
||||
|
||||
it('should handle single-item array filter as scalar value', async () => {
|
||||
const inspectableSearchEngine = new LunrSearchEngineForTests({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
const translatorUnderTest = inspectableSearchEngine.getTranslator();
|
||||
|
||||
@@ -266,7 +268,7 @@ describe('LunrSearchEngine', () => {
|
||||
|
||||
it('should return translated query with multiple filters', async () => {
|
||||
const inspectableSearchEngine = new LunrSearchEngineForTests({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
const translatorUnderTest = inspectableSearchEngine.getTranslator();
|
||||
|
||||
@@ -315,7 +317,7 @@ describe('LunrSearchEngine', () => {
|
||||
|
||||
it('should throw if translated query references missing field', async () => {
|
||||
const inspectableSearchEngine = new LunrSearchEngineForTests({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
const translatorUnderTest = inspectableSearchEngine.getTranslator();
|
||||
|
||||
@@ -477,7 +479,7 @@ describe('LunrSearchEngine', () => {
|
||||
|
||||
it('should perform search query and return highlight metadata on match', async () => {
|
||||
const inspectableSearchEngine = new LunrSearchEngineForTests({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
|
||||
const mockDocuments = [
|
||||
@@ -1012,7 +1014,7 @@ describe('LunrSearchEngine', () => {
|
||||
|
||||
// Set up an inspectable search engine to pre-set some data.
|
||||
const inspectableSearchEngine = new LunrSearchEngineForTests({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
inspectableSearchEngine.setDocStore({ 'existing-location': doc });
|
||||
|
||||
@@ -1047,7 +1049,7 @@ describe('LunrSearchEngine', () => {
|
||||
// Set up an inspectable search engine to pre-set some data.
|
||||
const doc = { title: 'A doc', text: 'test', location: 'some-location' };
|
||||
const inspectableSearchEngine = new LunrSearchEngineForTests({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
inspectableSearchEngine.setDocStore({ 'existing-location': doc });
|
||||
|
||||
@@ -1073,7 +1075,7 @@ describe('LunrSearchEngine', () => {
|
||||
// Set up an inspectable search engine to pre-set some data.
|
||||
const doc = { title: 'A doc', text: 'test', location: 'some-location' };
|
||||
const inspectableSearchEngine = new LunrSearchEngineForTests({
|
||||
logger: getVoidLogger(),
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
inspectableSearchEngine.setDocStore({ 'existing-location': doc });
|
||||
|
||||
@@ -1178,7 +1180,9 @@ describe('stopword testing', () => {
|
||||
let testLunrSearchEngine: SearchEngine;
|
||||
|
||||
beforeEach(() => {
|
||||
testLunrSearchEngine = new LunrSearchEngine({ logger: getVoidLogger() });
|
||||
testLunrSearchEngine = new LunrSearchEngine({
|
||||
logger: mockServices.logger.mock(),
|
||||
});
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
|
||||
@@ -14,10 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import {
|
||||
PluginEndpointDiscovery,
|
||||
getVoidLogger,
|
||||
} from '@backstage/backend-common';
|
||||
import { PluginEndpointDiscovery } from '@backstage/backend-common';
|
||||
import { ConfigReader } from '@backstage/config';
|
||||
import { PermissionEvaluator } from '@backstage/plugin-permission-common';
|
||||
import {
|
||||
@@ -55,7 +52,7 @@ describe('createRouter', () => {
|
||||
};
|
||||
|
||||
beforeAll(async () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
mockSearchEngine = {
|
||||
getIndexer: jest.fn(),
|
||||
setTranslator: jest.fn(),
|
||||
@@ -259,7 +256,7 @@ describe('createRouter', () => {
|
||||
|
||||
describe('search result filtering', () => {
|
||||
beforeAll(async () => {
|
||||
const logger = getVoidLogger();
|
||||
const logger = mockServices.logger.mock();
|
||||
mockSearchEngine = {
|
||||
getIndexer: jest.fn(),
|
||||
setTranslator: jest.fn(),
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user