refactor(test-utils): deprecate the isDockerDisabledForTests function

Signed-off-by: Camila Belo <camilaibs@gmail.com>
This commit is contained in:
Camila Belo
2024-07-10 12:53:32 +02:00
parent 95a3a0b91c
commit b82aff92aa
106 changed files with 329 additions and 272 deletions
+2 -48
View File
@@ -1,53 +1,7 @@
---
'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': patch
'@backstage/plugin-auth-backend-module-cloudflare-access-provider': patch
'@backstage/plugin-search-backend-module-stack-overflow-collator': patch
'@backstage/plugin-scaffolder-backend-module-bitbucket-server': patch
'@backstage/plugin-auth-backend-module-vmware-cloud-provider': patch
'@backstage/plugin-scaffolder-backend-module-bitbucket-cloud': patch
'@backstage/plugin-catalog-backend-module-bitbucket-server': patch
'@backstage/plugin-auth-backend-module-microsoft-provider': patch
'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch
'@backstage/plugin-auth-backend-module-pinniped-provider': patch
'@backstage/plugin-auth-backend-module-aws-alb-provider': patch
'@backstage/plugin-scaffolder-backend-module-bitbucket': patch
'@backstage/plugin-auth-backend-module-oidc-provider': patch
'@backstage/plugin-scaffolder-backend-module-gerrit': patch
'@backstage/plugin-scaffolder-backend-module-sentry': patch
'@backstage/plugin-catalog-backend-module-puppetdb': patch
'@backstage/plugin-scaffolder-backend-module-gitea': patch
'@backstage/plugin-catalog-backend-module-msgraph': patch
'@backstage/plugin-search-backend-module-techdocs': patch
'@backstage/plugin-catalog-backend-module-gerrit': patch
'@backstage/plugin-catalog-backend-module-github': patch
'@backstage/plugin-catalog-backend-module-gitlab': patch
'@backstage/plugin-search-backend-module-catalog': patch
'@backstage/plugin-search-backend-module-explore': patch
'@backstage/plugin-catalog-backend-module-azure': patch
'@backstage/frontend-test-utils': patch
'@backstage/backend-test-utils': patch
'@backstage/release-manifests': patch
'@backstage/plugin-kubernetes-backend': patch
'@backstage/plugin-notifications-node': patch
'@backstage/backend-defaults': patch
'@backstage/core-components': patch
'@backstage/plugin-kubernetes-react': patch
'@backstage/plugin-techdocs-backend': patch
'@backstage/plugin-catalog-backend': patch
'@backstage/plugin-kubernetes-node': patch
'@backstage/plugin-permission-node': patch
'@backstage/config-loader': patch
'@backstage/plugin-catalog-import': patch
'@backstage/core-app-api': patch
'@backstage/plugin-notifications': patch
'@backstage/plugin-proxy-backend': patch
'@backstage/plugin-user-settings': patch
'@backstage/plugin-auth-backend': patch
'@backstage/create-app': patch
'@backstage/frontend-test-utils': patch
'@backstage/test-utils': patch
'@backstage/plugin-scaffolder': patch
'@backstage/plugin-auth-node': patch
'@backstage/cli': patch
---
Rename frontend and backend `setupRequestMockHandlers` methods to `setupMswHandlers`.
Rename frontend and backend `setupRequestMockHandlers` methods to `registerMswTestHooks`.
@@ -61,7 +61,7 @@ requests and return mock responses. This lets you stub out remote services
rather than the local clients, leading to more thorough and robust tests. You
can read more about how it works [in their documentation](https://mswjs.io/).
The `@backstage/backend-test-utils` package exports a `setupRequestMockHandlers`
The `@backstage/backend-test-utils` package exports a `registerMswTestHooks`
function which ensures that the correct `jest` lifecycle hooks are invoked to
set up and tear down your `msw` instance, and enables the option that completely
rejects requests that don't match one of your mock rules. This ensures that your
@@ -70,13 +70,13 @@ tests cannot accidentally leak traffic into production from tests.
Example:
```ts
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
describe('read from remote', () => {
const worker = setupServer();
setupRequestMockHandlers(worker);
registerMswTestHooks(worker);
it('should auth and read successfully', async () => {
expect.assertions(1);
@@ -17,7 +17,7 @@
import {
ServiceFactoryTester,
mockServices,
setupMswHandlers,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { tokenManagerServiceFactory } from '@backstage/backend-app-api';
import { authServiceFactory } from './authServiceFactory';
@@ -68,7 +68,7 @@ const mockDeps = [
];
describe('authServiceFactory', () => {
setupMswHandlers(server);
registerMswTestHooks(server);
afterEach(() => {
jest.useRealTimers();
@@ -17,7 +17,10 @@
import { BackstagePrincipalAccessRestrictions } from '@backstage/backend-plugin-api';
import { ExternalTokenHandler } from './ExternalTokenHandler';
import { TokenHandler } from './types';
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { randomBytes } from 'crypto';
import { SignJWT, exportJWK, generateKeyPair } from 'jose';
import { DateTime } from 'luxon';
@@ -78,7 +81,7 @@ class FakeTokenFactory {
describe('ExternalTokenHandler', () => {
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
it('skips over inner handlers that do not match, and applies plugin restrictions', async () => {
const handler1: TokenHandler = {
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { SignJWT, exportJWK, generateKeyPair } from 'jose';
import { rest } from 'msw';
@@ -81,7 +81,7 @@ describe('JWKSHandler', () => {
let mockSubject: string;
const keyDurationSeconds = 5;
setupMswHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
mockSubject = 'test_subject';
@@ -16,7 +16,10 @@
import { JsonObject } from '@backstage/types';
import { UserTokenHandler } from './UserTokenHandler';
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { AuthenticationError } from '@backstage/errors';
@@ -61,7 +64,7 @@ async function createToken(options: {
describe('UserTokenHandler', () => {
let userTokenHandler: UserTokenHandler;
setupMswHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
jest.useRealTimers();
@@ -26,7 +26,7 @@ import {
import {
createMockDirectory,
mockServices,
setupMswHandlers,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import fs from 'fs-extra';
import { rest } from 'msw';
@@ -76,7 +76,7 @@ describe('AzureUrlReader', () => {
beforeEach(mockDir.clear);
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
describe('read', () => {
beforeEach(() => {
@@ -21,7 +21,7 @@ import {
} from '@backstage/integration';
import {
createMockDirectory,
setupMswHandlers,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import fs from 'fs-extra';
import { rest } from 'msw';
@@ -56,7 +56,7 @@ describe('BitbucketCloudUrlReader', () => {
beforeEach(mockDir.clear);
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
describe('readUrl', () => {
it('should be able to readUrl via buffer without ETag', async () => {
@@ -21,7 +21,7 @@ import {
} from '@backstage/integration';
import {
createMockDirectory,
setupMswHandlers,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import fs from 'fs-extra';
import { rest } from 'msw';
@@ -51,7 +51,7 @@ const reader = new BitbucketServerUrlReader(
describe('BitbucketServerUrlReader', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
describe('readTree', () => {
const repoBuffer = fs.readFileSync(
@@ -22,7 +22,7 @@ import {
import {
createMockDirectory,
mockServices,
setupMswHandlers,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import fs from 'fs-extra';
import { rest } from 'msw';
@@ -104,7 +104,7 @@ describe('BitbucketUrlReader', () => {
);
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
describe('readUrl', () => {
it('should be able to readUrl via buffer without ETag', async () => {
@@ -16,7 +16,10 @@
import { ConfigReader } from '@backstage/config';
import { NotFoundError, NotModifiedError } from '@backstage/errors';
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { FetchUrlReader } from './FetchUrlReader';
@@ -27,7 +30,7 @@ const fetchUrlReader = new FetchUrlReader();
describe('FetchUrlReader', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
beforeEach(() => {
jest.clearAllMocks();
@@ -17,7 +17,7 @@
import {
createMockDirectory,
mockServices,
setupMswHandlers,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { NotModifiedError, NotFoundError } from '@backstage/errors';
@@ -92,7 +92,7 @@ const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => {
// eslint-disable-next-line jest/no-disabled-tests
describe.skip('GerritUrlReader', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
beforeEach(() => {
mockDir.clear();
@@ -14,7 +14,10 @@
* limitations under the License.
*/
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { GiteaIntegration, readGiteaConfig } from '@backstage/integration';
import { JsonObject } from '@backstage/types';
@@ -61,7 +64,7 @@ const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => {
describe('GiteaUrlReader', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
afterAll(() => {
jest.clearAllMocks();
@@ -22,7 +22,7 @@ import {
} from '@backstage/integration';
import {
createMockDirectory,
setupMswHandlers,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import fs from 'fs-extra';
import { rest } from 'msw';
@@ -74,7 +74,7 @@ const gheProcessor = new GithubUrlReader(
describe('GithubUrlReader', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
beforeEach(mockDir.clear);
@@ -18,7 +18,7 @@ import { ConfigReader } from '@backstage/config';
import {
createMockDirectory,
mockServices,
setupMswHandlers,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import fs from 'fs-extra';
import { rest } from 'msw';
@@ -72,7 +72,7 @@ describe('GitlabUrlReader', () => {
beforeEach(mockDir.clear);
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
describe('read', () => {
beforeEach(() => {
@@ -14,7 +14,10 @@
* limitations under the License.
*/
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { HarnessIntegration, readHarnessConfig } from '@backstage/integration';
import { JsonObject } from '@backstage/types';
@@ -117,7 +120,7 @@ const handlers = [
describe('HarnessUrlReader', () => {
const worker = setupServer(...handlers);
setupMswHandlers(worker);
registerMswTestHooks(worker);
beforeAll(() => worker.listen({ onUnhandledRequest: 'bypass' }));
afterAll(() => {
jest.clearAllMocks();
@@ -15,7 +15,10 @@
*/
import { BackstageUserPrincipal } from '@backstage/backend-plugin-api';
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { JsonObject } from '@backstage/types';
import { SignJWT, base64url, importJWK } from 'jose';
import { rest } from 'msw';
@@ -25,7 +28,7 @@ import { DefaultUserInfoService } from './DefaultUserInfoService';
describe('DefaultUserInfoService', () => {
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
const mockPublicKey = {
kty: 'EC',
+7 -7
View File
@@ -365,6 +365,13 @@ export namespace mockServices {
}
}
// @public
export function registerMswTestHooks(worker: {
listen: (t: any) => void;
close: () => void;
resetHandlers: () => void;
}): void;
// @public
export class ServiceFactoryTester<TService, TScope extends 'root' | 'plugin'> {
static from<TService, TScope extends 'root' | 'plugin'>(
@@ -402,13 +409,6 @@ export type ServiceMock<TService> = {
: TService[Key];
};
// @public
export function setupMswHandlers(worker: {
listen: (t: any) => void;
close: () => void;
resetHandlers: () => void;
}): void;
// @public @deprecated (undocumented)
export function setupRequestMockHandlers(worker: {
listen: (t: any) => void;
+11 -11
View File
@@ -14,9 +14,9 @@
* limitations under the License.
*/
import { registerMswTestHooks } from './msw';
import { CreateMockDirectoryOptions } from './filesystem';
import { isDockerDisabledForTests as _isDockerDisabledForTests } from './util';
import { setupMswHandlers } from './msw';
/**
* @public
@@ -26,20 +26,20 @@ export type MockDirectoryOptions = CreateMockDirectoryOptions;
/**
* @public
* @deprecated This is an internal function and will no longer be exported from this package.
*/
export function isDockerDisabledForTests(): boolean {
return _isDockerDisabledForTests();
}
/**
* @public
* @deprecated Use `setupMswHandlers` from `@backstage/backend-test-utils` instead.
* @deprecated Use `registerMswTestHooks` from `@backstage/backend-test-utils` instead.
*/
export function setupRequestMockHandlers(worker: {
listen: (t: any) => void;
close: () => void;
resetHandlers: () => void;
}): void {
setupMswHandlers(worker);
registerMswTestHooks(worker);
}
/**
* @public
* @deprecated This is an internal function and will no longer be exported from this package.
*/
export function isDockerDisabledForTests(): boolean {
return _isDockerDisabledForTests();
}
+1 -1
View File
@@ -14,4 +14,4 @@
* limitations under the License.
*/
export { setupMswHandlers } from './setupRequestMockHandlers';
export { registerMswTestHooks } from './registerMswTestHooks';
@@ -19,7 +19,7 @@
* @public
* @param worker - service worker
*/
export function setupMswHandlers(worker: {
export function registerMswTestHooks(worker: {
listen: (t: any) => void;
close: () => void;
resetHandlers: () => void;
@@ -18,7 +18,7 @@ import fs from 'fs-extra';
import { Command } from 'commander';
import * as runObj from '../../lib/run';
import bump, { bumpBackstageJsonVersion, createVersionFinder } from './bump';
import { setupMswHandlers, withLogCollector } from '@backstage/test-utils';
import { registerMswTestHooks, withLogCollector } from '@backstage/test-utils';
import { YarnInfoInspectData } from '../../lib/versioning/packages';
import { setupServer } from 'msw/node';
import { rest } from 'msw';
@@ -153,7 +153,7 @@ describe('bump', () => {
});
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
it('should bump backstage dependencies', async () => {
mockDir.setContent({
@@ -4,14 +4,14 @@ import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { screen } from '@testing-library/react';
import {
setupRequestMockHandlers,
registerMswTestHooks,
renderInTestApp,
} from '@backstage/test-utils';
describe('ExampleComponent', () => {
const server = setupServer();
// Enable sane handlers for network requests
setupRequestMockHandlers(server);
registerMswTestHooks(server);
// setup mock response
beforeEach(() => {
@@ -15,14 +15,14 @@
*/
import { rest } from 'msw';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { setupServer } from 'msw/node';
import { RemoteConfigSource } from './RemoteConfigSource';
import { readN } from './__testUtils__/testUtils';
describe('RemoteConfigSource', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
it('should load config from a remote URL', async () => {
worker.use(
@@ -19,13 +19,13 @@ import MockOAuthApi from '../../OAuthRequestApi/MockOAuthApi';
import { UrlPatternDiscovery } from '../../DiscoveryApi';
import { ConfigReader } from '@backstage/config';
import { microsoftAuthApiRef } from '@backstage/core-plugin-api';
import { setupMswHandlers } from '@backstage/test-utils';
import { registerMswTestHooks } from '@backstage/test-utils';
import { setupServer } from 'msw/node';
import { rest } from 'msw';
describe('MicrosoftAuth', () => {
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
const microsoftAuth = MicrosoftAuth.create({
configApi: new ConfigReader(undefined),
oauthRequestApi: new MockOAuthApi(),
@@ -18,7 +18,7 @@ import { DefaultAuthConnector } from './DefaultAuthConnector';
import MockOAuthApi from '../../apis/implementations/OAuthRequestApi/MockOAuthApi';
import * as loginPopup from '../loginPopup';
import { UrlPatternDiscovery } from '../../apis';
import { setupMswHandlers } from '@backstage/test-utils';
import { registerMswTestHooks } from '@backstage/test-utils';
import { setupServer } from 'msw/node';
import { rest } from 'msw';
import { ConfigReader } from '@backstage/config';
@@ -53,7 +53,7 @@ const defaultOptions = {
describe('DefaultAuthConnector', () => {
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
afterEach(() => {
jest.resetAllMocks();
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { setupMswHandlers } from '@backstage/test-utils';
import { registerMswTestHooks } from '@backstage/test-utils';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import {
@@ -60,7 +60,7 @@ describe('ProxiedSignInIdentity', () => {
afterEach(() => jest.useRealTimers());
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
it('runs the happy path', async () => {
const getBaseUrl = jest.fn();
@@ -20,7 +20,7 @@ import { rest } from 'msw';
import { setupServer } from 'msw/node';
import {
TestApiProvider,
setupMswHandlers,
registerMswTestHooks,
wrapInTestApp,
} from '@backstage/test-utils';
import { ProxiedSignInPage } from './ProxiedSignInPage';
@@ -28,7 +28,7 @@ import { discoveryApiRef } from '@backstage/core-plugin-api';
describe('ProxiedSignInPage', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
const Subject = wrapInTestApp(<div>authenticated</div>, {
components: {
+2 -2
View File
@@ -31,7 +31,7 @@ import {
} from './tasks';
import {
createMockDirectory,
setupMswHandlers,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
@@ -423,7 +423,7 @@ describe('tasks', () => {
describe('fetchYarnLockSeedTask', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
it('should fetch the yarn.lock seed file', async () => {
worker.use(
+9 -2
View File
@@ -18,9 +18,9 @@ import { MockFetchApiOptions } from '@backstage/test-utils';
import { MockPermissionApi } from '@backstage/test-utils';
import { MockStorageApi } from '@backstage/test-utils';
import { MockStorageBucket } from '@backstage/test-utils';
import { registerMswTestHooks } from '@backstage/test-utils';
import { RenderResult } from '@testing-library/react';
import { RouteRef } from '@backstage/frontend-plugin-api';
import { setupMswHandlers as setupRequestMockHandlers } from '@backstage/test-utils';
import { TestApiProvider } from '@backstage/test-utils';
import { TestApiProviderProps } from '@backstage/test-utils';
import { TestApiRegistry } from '@backstage/test-utils';
@@ -73,13 +73,20 @@ export { MockStorageApi };
export { MockStorageBucket };
export { registerMswTestHooks };
// @public
export function renderInTestApp(
element: JSX.Element,
options?: TestAppOptions,
): RenderResult;
export { setupRequestMockHandlers };
// @public @deprecated (undocumented)
export function setupRequestMockHandlers(worker: {
listen: (t: any) => void;
close: () => void;
resetHandlers: () => void;
}): void;
export { TestApiProvider };
@@ -0,0 +1,29 @@
/*
* Copyright 2024 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { registerMswTestHooks } from '@backstage/test-utils';
/**
* @public
* @deprecated Use `registerMswTestHooks` from `@backstage/frontend-test-utils` instead.
*/
export function setupRequestMockHandlers(worker: {
listen: (t: any) => void;
close: () => void;
resetHandlers: () => void;
}): void {
registerMswTestHooks(worker);
}
+2 -1
View File
@@ -20,6 +20,7 @@
* Contains utilities that can be used when testing frontend features such as extensions.
*/
export * from './deprecated';
export * from './apis';
export * from './app';
@@ -28,4 +29,4 @@ export type { TestApiProviderProps } from '@backstage/test-utils';
export { withLogCollector } from '@backstage/test-utils';
export { setupMswHandlers as setupRequestMockHandlers } from '@backstage/test-utils';
export { registerMswTestHooks } from '@backstage/test-utils';
@@ -16,7 +16,7 @@
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { setupRequestMockHandlers } from '../helpers';
import { registerMswTestHooks } from '../helpers';
import { BitbucketIntegrationConfig } from './config';
import {
getBitbucketDefaultBranch,
@@ -27,7 +27,7 @@ import {
describe('bitbucket core', () => {
const worker = setupServer();
setupRequestMockHandlers(worker);
registerMswTestHooks(worker);
describe('getBitbucketRequestOptions', () => {
it('inserts a token when needed', () => {
@@ -16,7 +16,7 @@
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { setupRequestMockHandlers } from '../helpers';
import { registerMswTestHooks } from '../helpers';
import { BitbucketCloudIntegrationConfig } from './config';
import {
getBitbucketCloudDefaultBranch,
@@ -27,7 +27,7 @@ import {
describe('bitbucketCloud core', () => {
const worker = setupServer();
setupRequestMockHandlers(worker);
registerMswTestHooks(worker);
describe('getBitbucketCloudRequestOptions', () => {
it('insert basic auth when needed', () => {
@@ -16,7 +16,7 @@
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { setupRequestMockHandlers } from '../helpers';
import { registerMswTestHooks } from '../helpers';
import { BitbucketServerIntegrationConfig } from './config';
import {
getBitbucketServerDefaultBranch,
@@ -27,7 +27,7 @@ import {
describe('bitbucketServer core', () => {
const worker = setupServer();
setupRequestMockHandlers(worker);
registerMswTestHooks(worker);
describe('getBitbucketServerRequestOptions', () => {
it('inserts a token when needed', () => {
+2 -2
View File
@@ -17,7 +17,7 @@
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import fetch from 'cross-fetch';
import { setupRequestMockHandlers } from '../helpers';
import { registerMswTestHooks } from '../helpers';
import { GerritIntegrationConfig } from './config';
import {
buildGerritGitilesArchiveUrl,
@@ -32,7 +32,7 @@ import {
describe('gerrit core', () => {
const worker = setupServer();
setupRequestMockHandlers(worker);
registerMswTestHooks(worker);
describe('buildGerritGitilesArchiveUrl', () => {
const config: GerritIntegrationConfig = {
+2 -2
View File
@@ -15,7 +15,7 @@
*/
import { setupServer } from 'msw/node';
import { setupRequestMockHandlers } from '../helpers';
import { registerMswTestHooks } from '../helpers';
import { GiteaIntegrationConfig } from './config';
import {
getGiteaArchiveUrl,
@@ -28,7 +28,7 @@ import {
describe('gitea core', () => {
const worker = setupServer();
setupRequestMockHandlers(worker);
registerMswTestHooks(worker);
describe('getGiteaFileCatalogInfoCntentsUrl', () => {
it('can create an url from arguments', () => {
@@ -15,7 +15,7 @@
*/
import { setupServer } from 'msw/node';
import { setupRequestMockHandlers } from '../helpers';
import { registerMswTestHooks } from '../helpers';
import { HarnessIntegrationConfig } from './config';
import {
getHarnessArchiveUrl,
@@ -28,7 +28,7 @@ import {
describe('Harness code core', () => {
const worker = setupServer();
setupRequestMockHandlers(worker);
registerMswTestHooks(worker);
describe('getHarnessFileContentsUrl', () => {
it('can create an url from arguments', () => {
+1 -1
View File
@@ -114,7 +114,7 @@ export function defaultScmResolveUrl(options: {
*
* @param worker - service worker
*/
export function setupRequestMockHandlers(worker: {
export function registerMswTestHooks(worker: {
listen: (t: any) => void;
close: () => void;
resetHandlers: () => void;
@@ -16,7 +16,7 @@
import { setupServer } from 'msw/node';
import { rest } from 'msw';
import { setupMswHandlers } from '@backstage/test-utils';
import { registerMswTestHooks } from '@backstage/test-utils';
import {
getManifestByReleaseLine,
getManifestByVersion,
@@ -25,7 +25,7 @@ import {
describe('Release Manifests', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
describe('getManifestByVersion', () => {
it('should return a list of packages in a release', async () => {
+7 -7
View File
@@ -197,6 +197,13 @@ export type MockStorageBucket = {
[key: string]: any;
};
// @public
export function registerMswTestHooks(worker: {
listen: (t: any) => void;
close: () => void;
resetHandlers: () => void;
}): void;
// @public
export function renderInTestApp(
Component: ComponentType<PropsWithChildren<{}>> | ReactNode,
@@ -209,13 +216,6 @@ export function renderWithEffects(
options?: Pick<RenderOptions, 'wrapper'> & LegacyRootOption,
): Promise<RenderResult>;
// @public
export function setupMswHandlers(worker: {
listen: (t: any) => void;
close: () => void;
resetHandlers: () => void;
}): void;
// @public @deprecated (undocumented)
export function setupRequestMockHandlers(worker: {
listen: (t: any) => void;
+3 -3
View File
@@ -14,16 +14,16 @@
* limitations under the License.
*/
import { setupMswHandlers } from './testUtils/msw';
import { registerMswTestHooks } from './testUtils/msw';
/**
* @public
* @deprecated Use `CreateMockDirectoryOptions` from `@backstage/backend-test-utils` instead.
* @deprecated Use `registerMswTestHooks` from `@backstage/test-utils` instead.
*/
export function setupRequestMockHandlers(worker: {
listen: (t: any) => void;
close: () => void;
resetHandlers: () => void;
}): void {
setupMswHandlers(worker);
registerMswTestHooks(worker);
}
@@ -16,12 +16,12 @@
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { setupMswHandlers } from '../../msw';
import { registerMswTestHooks } from '../../msw';
import { MockFetchApi } from './MockFetchApi';
describe('MockFetchApi', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
it('works with default constructor', async () => {
worker.use(
@@ -14,4 +14,4 @@
* limitations under the License.
*/
export { setupMswHandlers } from './setupMswHandlers';
export { registerMswTestHooks } from './registerMswTestHooks';
@@ -19,7 +19,7 @@
* @public
* @param worker - service worker
*/
export function setupMswHandlers(worker: {
export function registerMswTestHooks(worker: {
listen: (t: any) => void;
close: () => void;
resetHandlers: () => void;
@@ -19,7 +19,7 @@ import { JWTHeaderParameters, UnsecuredJWT } from 'jose';
import NodeCache from 'node-cache';
import { http, HttpResponse } from 'msw';
import { setupServer } from 'msw/node';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { PassportProfile } from '@backstage/plugin-auth-node';
import { makeProfileInfo, provisionKeyCache } from './helpers';
@@ -34,7 +34,7 @@ describe.each([
],
])('helpers', (region, url) => {
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
const nodeCache = jest.fn() as unknown as NodeCache;
nodeCache.set = jest.fn();
@@ -14,7 +14,10 @@
* limitations under the License.
*/
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { SignJWT, exportJWK, generateKeyPair } from 'jose';
import { HttpResponse, http } from 'msw';
@@ -86,7 +89,7 @@ describe('helpers', () => {
const tokenFactory = new MockTokenFactory();
const cache = mockServices.cache.mock();
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
jest.clearAllMocks();
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import {
encodeOAuthState,
@@ -43,7 +43,7 @@ describe('microsoftAuthenticator', () => {
const microsoftApi = new FakeMicrosoftAPI();
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
let implementation: {
domainHint: string | undefined;
@@ -23,7 +23,7 @@ import {
} from '@backstage/plugin-auth-node';
import { oidcAuthenticator } from './authenticator';
import { setupServer } from 'msw/node';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { JWK, SignJWT, exportJWK, generateKeyPair } from 'jose';
import { rest } from 'msw';
@@ -38,7 +38,7 @@ describe('oidcAuthenticator', () => {
const revokedTokenMap: Record<string, boolean> = {};
const mswServer = setupServer();
setupMswHandlers(mswServer);
registerMswTestHooks(mswServer);
const issuerMetadata = {
issuer: 'https://oidc.test',
@@ -20,7 +20,7 @@ import { setupServer } from 'msw/node';
import { rest } from 'msw';
import {
mockServices,
setupMswHandlers,
registerMswTestHooks,
startTestBackend,
} from '@backstage/backend-test-utils';
import { Server } from 'http';
@@ -35,7 +35,7 @@ describe('authModuleOidcProvider', () => {
let publicKey: JWK;
const mswServer = setupServer();
setupMswHandlers(mswServer);
registerMswTestHooks(mswServer);
const issuerMetadata = {
issuer: 'https://oidc.test',
@@ -23,7 +23,7 @@ import {
} from '@backstage/plugin-auth-node';
import { pinnipedAuthenticator } from './authenticator';
import { setupServer } from 'msw/node';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { JWK, SignJWT, exportJWK, generateKeyPair } from 'jose';
import { rest } from 'msw';
@@ -37,7 +37,7 @@ describe('pinnipedAuthenticator', () => {
let publicKey: JWK;
const mswServer = setupServer();
setupMswHandlers(mswServer);
registerMswTestHooks(mswServer);
const issuerMetadata = {
issuer: 'https://pinniped.test',
@@ -15,7 +15,7 @@
*/
import {
mockServices,
setupMswHandlers,
registerMswTestHooks,
startTestBackend,
} from '@backstage/backend-test-utils';
import { Server } from 'http';
@@ -32,7 +32,7 @@ describe('authModulePinnipedProvider', () => {
let publicKey: JWK;
const mswServer = setupServer();
setupMswHandlers(mswServer);
registerMswTestHooks(mswServer);
const issuerMetadata = {
issuer: 'https://pinniped.test',
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import {
AuthResolverContext,
@@ -37,7 +37,7 @@ jest.mock('uid2', () => jest.fn().mockReturnValue('sessionid'));
describe('vmwareCloudAuthenticator', () => {
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
let oAuthState: OAuthState = {
nonce: 'nonce',
@@ -22,7 +22,7 @@ import {
BitbucketServerOAuthResult,
} from './provider';
import { setupServer } from 'msw/node';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { rest } from 'msw';
import { AuthResolverContext } from '@backstage/plugin-auth-node';
@@ -131,7 +131,7 @@ describe('BitbucketServerAuthProvider', () => {
describe('when transforming to type OAuthResponse', () => {
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
it('should map to a valid response', async () => {
server.use(whoAmIHandler(), getUserHandler());
@@ -311,7 +311,7 @@ describe('BitbucketServerAuthProvider', () => {
describe('when authenticating', () => {
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
it('should forward the refresh token', async () => {
server.use(whoAmIHandler(), getUserHandler());
@@ -13,7 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { LoggerService } from '@backstage/backend-plugin-api';
import { Config, ConfigReader } from '@backstage/config';
import {
@@ -35,7 +38,7 @@ describe('oidc.create', () => {
nonce: 'foo',
};
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
let publicKey: JWK;
let tokenset: object;
@@ -15,7 +15,7 @@
*/
import { PluginEndpointDiscovery } from '@backstage/backend-common';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import {
decodeProtectedHeader,
exportJWK,
@@ -102,7 +102,7 @@ describe('IdentityClient', () => {
let factory: FakeTokenFactory;
const keyDurationSeconds = 5;
setupMswHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
client = IdentityClient.create({ discovery, issuer: mockBaseUrl });
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { codeSearch, CodeSearchResponse } from './azure';
@@ -26,7 +26,7 @@ import { ConfigReader } from '@backstage/config';
describe('azure', () => {
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
const createFixture = (host: string, token: string) => {
const azureConfig = {
@@ -20,7 +20,10 @@ import {
TaskInvocationDefinition,
TaskRunner,
} from '@backstage/backend-tasks';
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { CatalogApi } from '@backstage/catalog-client';
import { Entity, LocationEntity } from '@backstage/catalog-model';
import { ConfigReader } from '@backstage/config';
@@ -59,7 +62,7 @@ const logger = mockServices.logger.mock();
const server = setupServer();
describe('BitbucketCloudEntityProvider', () => {
setupMswHandlers(server);
registerMswTestHooks(server);
const simpleConfig = new ConfigReader({
catalog: {
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { BitbucketServerIntegrationConfig } from '@backstage/integration';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
@@ -50,7 +50,7 @@ describe('BitbucketServerClient', () => {
config: config,
});
setupMswHandlers(server);
registerMswTestHooks(server);
it('listProjects', async () => {
server.use(
@@ -19,7 +19,10 @@ import {
TaskInvocationDefinition,
TaskRunner,
} from '@backstage/backend-tasks';
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { rest } from 'msw';
@@ -100,7 +103,7 @@ function setupStubs(projects: Project[], baseUrl: string) {
}
describe('BitbucketServerEntityProvider', () => {
setupMswHandlers(server);
registerMswTestHooks(server);
afterEach(() => {
jest.clearAllMocks();
});
@@ -19,7 +19,10 @@ import {
TaskInvocationDefinition,
TaskRunner,
} from '@backstage/backend-tasks';
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import fs from 'fs-extra';
@@ -54,7 +57,7 @@ class PersistingTaskRunner implements TaskRunner {
const logger = mockServices.logger.mock();
describe('GerritEntityProvider', () => {
setupMswHandlers(server);
registerMswTestHooks(server);
afterEach(() => {
jest.clearAllMocks();
@@ -34,7 +34,10 @@ jest.mock('@octokit/rest', () => {
import { PluginEndpointDiscovery } from '@backstage/backend-common';
import { GithubLocationAnalyzer } from './GithubLocationAnalyzer';
import { setupMswHandlers, mockServices } from '@backstage/backend-test-utils';
import {
registerMswTestHooks,
mockServices,
} from '@backstage/backend-test-utils';
import { setupServer } from 'msw/node';
import { rest } from 'msw';
import { ConfigReader } from '@backstage/config';
@@ -60,7 +63,7 @@ describe('GithubLocationAnalyzer', () => {
},
});
setupMswHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
server.use(
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { GroupEntity, UserEntity } from '@backstage/catalog-model';
import { graphql as graphqlOctokit } from '@octokit/graphql';
import { graphql as graphqlMsw } from 'msw';
@@ -39,7 +39,7 @@ describe('github', () => {
const graphql = graphqlOctokit.defaults({ request: { fetch } });
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
describe('getOrganizationUsers using defaultUserMapper', () => {
it('reads members', async () => {
@@ -14,7 +14,10 @@
* limitations under the License.
*/
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { LocationSpec } from '@backstage/plugin-catalog-node';
import { rest, RestRequest } from 'msw';
@@ -154,7 +157,7 @@ function getProcessor({
}
describe('GitlabDiscoveryProcessor', () => {
setupMswHandlers(server);
registerMswTestHooks(server);
beforeAll(() => {
jest.useFakeTimers();
@@ -14,7 +14,10 @@
* limitations under the License.
*/
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { readGitLabIntegrationConfig } from '@backstage/integration';
import { setupServer } from 'msw/node';
@@ -24,7 +27,7 @@ import { GitLabClient, paginated } from './client';
import { GitLabGroup, GitLabUser } from './types';
const server = setupServer(...handlers);
setupMswHandlers(server);
registerMswTestHooks(server);
describe('GitLabClient', () => {
describe('isSelfManaged', () => {
@@ -19,7 +19,10 @@ import {
TaskInvocationDefinition,
TaskRunner,
} from '@backstage/backend-tasks';
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { DefaultEventsService } from '@backstage/plugin-events-node';
@@ -29,7 +32,7 @@ import * as mock from '../__testUtils__/mocks';
import { GitlabDiscoveryEntityProvider } from './GitlabDiscoveryEntityProvider';
const server = setupServer(...handlers);
setupMswHandlers(server);
registerMswTestHooks(server);
afterEach(() => jest.clearAllMocks());
class PersistingTaskRunner implements TaskRunner {
@@ -19,7 +19,10 @@ import {
TaskInvocationDefinition,
TaskRunner,
} from '@backstage/backend-tasks';
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { EntityProviderConnection } from '@backstage/plugin-catalog-node';
import { DefaultEventsService } from '@backstage/plugin-events-node';
@@ -30,7 +33,7 @@ import { GroupNameTransformerOptions } from '../lib/types';
import { GitlabOrgDiscoveryEntityProvider } from './GitlabOrgDiscoveryEntityProvider';
const server = setupServer(...handlers);
setupMswHandlers(server);
registerMswTestHooks(server);
afterEach(() => jest.clearAllMocks());
class PersistingTaskRunner implements TaskRunner {
@@ -15,7 +15,7 @@
*/
import { TokenCredential } from '@azure/identity';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { MicrosoftGraphClient } from './client';
@@ -27,7 +27,7 @@ describe('MicrosoftGraphClient', () => {
let client: MicrosoftGraphClient;
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
beforeEach(() => {
tokenCredential.getToken.mockResolvedValue({
@@ -20,14 +20,14 @@ import {
PuppetDbEntityProviderConfig,
} from '../providers';
import { DEFAULT_NAMESPACE } from '@backstage/catalog-model';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { ANNOTATION_PUPPET_CERTNAME, ENDPOINT_FACTSETS } from './constants';
describe('readPuppetNodes', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
beforeEach(() => {
jest.clearAllMocks();
@@ -15,7 +15,10 @@
*/
import { UrlReader, UrlReaders } from '@backstage/backend-common';
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
@@ -36,7 +39,7 @@ describe('UrlReaderProcessor', () => {
set: jest.fn(),
};
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
jest.resetAllMocks();
@@ -18,7 +18,7 @@ import {
PluginEndpointDiscovery,
TokenManager,
} from '@backstage/backend-common';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { Entity } from '@backstage/catalog-model';
import { DefaultCatalogCollator } from './DefaultCatalogCollator';
import { setupServer } from 'msw/node';
@@ -62,7 +62,7 @@ describe('DefaultCatalogCollator', () => {
let mockTokenManager: jest.Mocked<TokenManager>;
let collator: DefaultCatalogCollator;
setupMswHandlers(server);
registerMswTestHooks(server);
beforeAll(() => {
mockDiscoveryApi = {
getBaseUrl: jest.fn().mockResolvedValue('http://localhost:7007'),
@@ -26,7 +26,7 @@ import {
RepoApiClient,
} from './AzureRepoApiClient';
import { setupServer } from 'msw/node';
import { setupMswHandlers } from '@backstage/test-utils';
import { registerMswTestHooks } from '@backstage/test-utils';
function mockRepoEndpoint() {
return rest.get(
@@ -153,7 +153,7 @@ function mockPrEndpoint() {
describe('RepoApiClient', () => {
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
const testToken = new Date().toString();
const sut = new RepoApiClient({
project: 'project',
@@ -57,7 +57,7 @@ import { ConfigReader, UrlPatternDiscovery } from '@backstage/core-app-api';
import { ScmIntegrations } from '@backstage/integration';
import { ScmAuthApi } from '@backstage/integration-react';
import { CatalogApi } from '@backstage/plugin-catalog-react';
import { MockFetchApi, setupMswHandlers } from '@backstage/test-utils';
import { MockFetchApi, registerMswTestHooks } from '@backstage/test-utils';
import { Octokit } from '@octokit/rest';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
@@ -70,7 +70,7 @@ import {
describe('CatalogImportClient', () => {
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
const mockBaseUrl = 'http://backstage:9191/api/catalog';
const discoveryApi = UrlPatternDiscovery.compile(mockBaseUrl);
@@ -38,7 +38,7 @@ import {
ServiceMock,
mockCredentials,
mockServices,
setupMswHandlers,
registerMswTestHooks,
startTestBackend,
} from '@backstage/backend-test-utils';
import { rest } from 'msw';
@@ -508,7 +508,7 @@ describe('API integration tests', () => {
describe('/proxy', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
beforeEach(() => {
worker.use(
@@ -26,7 +26,10 @@ import { KubernetesFanOutHandler } from './KubernetesFanOutHandler';
import { KubernetesClientBasedFetcher } from './KubernetesFetcher';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { mockServices, setupMswHandlers } from '@backstage/backend-test-utils';
import {
mockServices,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import {
FetchResponse,
KubernetesRequestAuth,
@@ -1125,7 +1128,7 @@ describe('KubernetesFanOutHandler', () => {
describe('with a real fetcher', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
it('fetch error short-circuits requests to a single cluster, recovering across the fleet', async () => {
const pods = [{ metadata: { name: 'pod-name' } }];
@@ -28,7 +28,7 @@ import { setupServer } from 'msw/node';
import {
createMockDirectory,
mockServices,
setupMswHandlers,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { Config } from '@kubernetes/client-node';
@@ -71,7 +71,7 @@ const POD_METRICS_FIXTURE = [
describe('KubernetesFetcher', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
const labels = (req: MockedRequest): object => {
const selectorParam = req.url.searchParams.get('labelSelector');
@@ -20,7 +20,7 @@ import { errorHandler } from '@backstage/backend-common';
import {
createMockDirectory,
mockServices,
setupMswHandlers,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { NotFoundError } from '@backstage/errors';
import {
@@ -90,7 +90,7 @@ describe('KubernetesProxy', () => {
getExternalBaseUrl: jest.fn(),
};
setupMswHandlers(worker);
registerMswTestHooks(worker);
const buildMockRequest = (clusterName: any, path: string): Request => {
const req = getMockReq({
@@ -18,7 +18,7 @@ import { ExtendedHttpServer } from '@backstage/backend-app-api';
import { ClusterDetails } from '../types';
import {
mockServices,
setupMswHandlers,
registerMswTestHooks,
startTestBackend,
} from '@backstage/backend-test-utils';
import { createBackendModule } from '@backstage/backend-plugin-api';
@@ -43,7 +43,7 @@ describe('Pinniped - tokenCredentialRequest', () => {
const logger = loggerToWinstonLogger(mockServices.logger.mock());
let httpsRequest: jest.SpyInstance;
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
beforeAll(() => {
httpsRequest = jest.spyOn(
@@ -19,7 +19,7 @@ import { KubernetesBackendClient } from './KubernetesBackendClient';
import { rest } from 'msw';
import { UrlPatternDiscovery } from '@backstage/core-app-api';
import { setupServer } from 'msw/node';
import { MockFetchApi, setupMswHandlers } from '@backstage/test-utils';
import { MockFetchApi, registerMswTestHooks } from '@backstage/test-utils';
import {
CustomObjectsByEntityRequest,
KubernetesRequestBody,
@@ -36,7 +36,7 @@ describe('KubernetesBackendClient', () => {
};
let mockResponse: ObjectsByEntityResponse;
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
const identityApi = {
getCredentials: jest.fn(),
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { setupMswHandlers } from '@backstage/test-utils';
import { registerMswTestHooks } from '@backstage/test-utils';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { NotificationPayload } from '@backstage/plugin-notifications-common';
@@ -32,7 +32,7 @@ const testNotification: NotificationPayload = {
describe('DefaultNotificationService', () => {
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
const discovery = mockServices.discovery.mock({
getBaseUrl: jest.fn().mockResolvedValue('http://example.com'),
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { MockFetchApi, setupMswHandlers } from '@backstage/test-utils';
import { MockFetchApi, registerMswTestHooks } from '@backstage/test-utils';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { NotificationsClient } from './NotificationsClient';
@@ -33,7 +33,7 @@ const testNotification: Partial<Notification> = {
};
describe('NotificationsClient', () => {
setupMswHandlers(server);
registerMswTestHooks(server);
const mockBaseUrl = 'http://backstage/api/notifications';
const discoveryApi = { getBaseUrl: async () => mockBaseUrl };
const fetchApi = new MockFetchApi();
@@ -25,7 +25,7 @@ import {
import {
mockCredentials,
mockServices,
setupMswHandlers,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { ConfigReader } from '@backstage/config';
import { setupServer } from 'msw/node';
@@ -54,7 +54,7 @@ const config = new ConfigReader({
});
describe('ServerPermissionClient', () => {
setupMswHandlers(server);
registerMswTestHooks(server);
const discovery = mockServices.discovery.mock();
@@ -19,7 +19,7 @@ import {
createServiceFactory,
} from '@backstage/backend-plugin-api';
import {
setupMswHandlers,
registerMswTestHooks,
startTestBackend,
} from '@backstage/backend-test-utils';
import {
@@ -36,7 +36,7 @@ import fetch from 'node-fetch';
describe('createRouter reloadable configuration', () => {
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
it('should be able to observe the config', async () => {
// Grab the subscriber function and use mutable config data to mock a config file change
@@ -20,7 +20,7 @@ import {
} from '@backstage/backend-app-api';
import {
mockServices,
setupMswHandlers,
registerMswTestHooks,
startTestBackend,
} from '@backstage/backend-test-utils';
import { ResponseError } from '@backstage/errors';
@@ -34,7 +34,7 @@ import fetch from 'node-fetch';
describe('credentials', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
it('handles all valid credentials settings', async () => {
const config = {
@@ -29,7 +29,7 @@ jest.mock('@backstage/plugin-scaffolder-node', () => {
import { createPublishBitbucketCloudAction } from './bitbucketCloud';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { ScmIntegrations } from '@backstage/integration';
import { ConfigReader } from '@backstage/config';
import { initRepoAndPush } from '@backstage/plugin-scaffolder-node';
@@ -66,7 +66,7 @@ describe('publish:bitbucketCloud', () => {
},
});
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
jest.resetAllMocks();
@@ -29,7 +29,7 @@ jest.mock('@backstage/plugin-scaffolder-node', () => {
import { createPublishBitbucketCloudAction } from './bitbucketCloud';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { ScmIntegrations } from '@backstage/integration';
import { ConfigReader } from '@backstage/config';
import { initRepoAndPush } from '@backstage/plugin-scaffolder-node';
@@ -56,7 +56,7 @@ describe('publish:bitbucketCloud', () => {
},
});
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
jest.resetAllMocks();
@@ -21,7 +21,7 @@ import yaml from 'yaml';
import { examples } from './bitbucketCloudPipelinesRun.examples';
import { ConfigReader } from '@backstage/config';
import { ScmIntegrations } from '@backstage/integration';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { createMockActionContext } from '@backstage/plugin-scaffolder-node-test-utils';
describe('bitbucket:pipelines:run', () => {
@@ -48,7 +48,7 @@ describe('bitbucket:pipelines:run', () => {
build_number: 1,
};
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
beforeEach(() => {
jest.resetAllMocks();
@@ -16,7 +16,7 @@
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { createBitbucketPipelinesRunAction } from './bitbucketCloudPipelinesRun';
import { ConfigReader } from '@backstage/config';
import { ScmIntegrations } from '@backstage/integration';
@@ -48,7 +48,7 @@ describe('bitbucket:pipelines:run', () => {
build_number: 1,
};
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
beforeEach(() => {
jest.clearAllMocks();
@@ -29,7 +29,7 @@ jest.mock('@backstage/plugin-scaffolder-node', () => {
import { createPublishBitbucketServerAction } from './bitbucketServer';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { ScmIntegrations } from '@backstage/integration';
import { ConfigReader } from '@backstage/config';
import yaml from 'yaml';
@@ -68,7 +68,7 @@ describe('publish:bitbucketServer', () => {
},
});
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
jest.resetAllMocks();
@@ -29,7 +29,7 @@ jest.mock('@backstage/plugin-scaffolder-node', () => {
import { createPublishBitbucketServerAction } from './bitbucketServer';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { ScmIntegrations } from '@backstage/integration';
import { ConfigReader } from '@backstage/config';
import { initRepoAndPush } from '@backstage/plugin-scaffolder-node';
@@ -66,7 +66,7 @@ describe('publish:bitbucketServer', () => {
},
});
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
jest.resetAllMocks();
@@ -29,7 +29,7 @@ jest.mock('@backstage/plugin-scaffolder-node', () => {
import { createPublishBitbucketServerPullRequestAction } from './bitbucketServerPullRequest';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { ScmIntegrations } from '@backstage/integration';
import { ConfigReader } from '@backstage/config';
import yaml from 'yaml';
@@ -191,7 +191,7 @@ describe('publish:bitbucketServer:pull-request', () => {
};
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
jest.resetAllMocks();
@@ -29,7 +29,7 @@ jest.mock('@backstage/plugin-scaffolder-node', () => {
import { createPublishBitbucketServerPullRequestAction } from './bitbucketServerPullRequest';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { setupRequestMockHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { ScmIntegrations } from '@backstage/integration';
import { ConfigReader } from '@backstage/config';
import { createMockActionContext } from '@backstage/plugin-scaffolder-node-test-utils';
@@ -221,7 +221,7 @@ describe('publish:bitbucketServer:pull-request', () => {
];
const server = setupServer();
setupRequestMockHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
jest.resetAllMocks();
@@ -29,7 +29,7 @@ jest.mock('@backstage/plugin-scaffolder-node', () => {
import { createPublishBitbucketAction } from './bitbucket';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { ScmIntegrations } from '@backstage/integration';
import { ConfigReader } from '@backstage/config';
import { initRepoAndPush } from '@backstage/plugin-scaffolder-node';
@@ -67,7 +67,7 @@ describe('publish:bitbucket', () => {
},
});
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
jest.resetAllMocks();
@@ -28,7 +28,7 @@ jest.mock('@backstage/plugin-scaffolder-node', () => {
import { createPublishBitbucketAction } from './bitbucket';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { ScmIntegrations } from '@backstage/integration';
import { ConfigReader } from '@backstage/config';
import { initRepoAndPush } from '@backstage/plugin-scaffolder-node';
@@ -63,7 +63,7 @@ describe('publish:bitbucket', () => {
},
});
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
jest.resetAllMocks();
@@ -20,7 +20,7 @@ import { ScmIntegrations } from '@backstage/integration';
import {
createMockDirectory,
mockServices,
setupMswHandlers,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
@@ -32,7 +32,7 @@ import { createMockActionContext } from '@backstage/plugin-scaffolder-node-test-
describe('confluence:transform:markdown examples', () => {
const baseUrl = `https://confluence.example.com`;
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
const config = new ConfigReader({
confluence: {
@@ -21,7 +21,7 @@ import { ScmIntegrations } from '@backstage/integration';
import {
createMockDirectory,
mockServices,
setupMswHandlers,
registerMswTestHooks,
} from '@backstage/backend-test-utils';
import type { ActionContext } from '@backstage/plugin-scaffolder-node';
import { rest } from 'msw';
@@ -31,7 +31,7 @@ import { createMockActionContext } from '@backstage/plugin-scaffolder-node-test-
describe('confluence:transform:markdown', () => {
const baseUrl = `https://nodomain.confluence.com`;
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
const config = new ConfigReader({
confluence: {
@@ -30,7 +30,7 @@ import path from 'path';
import { createPublishGerritAction } from './gerrit';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { ScmIntegrations } from '@backstage/integration';
import { ConfigReader } from '@backstage/config';
import { initRepoAndPush } from '@backstage/plugin-scaffolder-node';
@@ -61,7 +61,7 @@ describe('publish:gerrit', () => {
},
});
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
jest.resetAllMocks();
@@ -18,7 +18,7 @@ import { ConfigReader } from '@backstage/config';
import { createPublishGiteaAction } from './gitea';
import { initRepoAndPush } from '@backstage/plugin-scaffolder-node';
import { rest } from 'msw';
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { createMockActionContext } from '@backstage/plugin-scaffolder-node-test-utils';
import { setupServer } from 'msw/node';
@@ -62,7 +62,7 @@ describe('publish:gitea', () => {
});
const server = setupServer();
setupMswHandlers(server);
registerMswTestHooks(server);
beforeEach(() => {
jest.resetAllMocks();
@@ -14,7 +14,7 @@
* limitations under the License.
*/
import { setupMswHandlers } from '@backstage/backend-test-utils';
import { registerMswTestHooks } from '@backstage/backend-test-utils';
import { createMockActionContext } from '@backstage/plugin-scaffolder-node-test-utils';
import { ConfigReader } from '@backstage/config';
import { InputError } from '@backstage/errors';
@@ -27,7 +27,7 @@ import { createSentryCreateProjectAction } from './createProject';
describe('sentry:project:create action', () => {
const worker = setupServer();
setupMswHandlers(worker);
registerMswTestHooks(worker);
const createScaffolderConfig = (configData: JsonObject = {}) => ({
config: new ConfigReader({
+2 -2
View File
@@ -16,7 +16,7 @@
import { ConfigReader } from '@backstage/core-app-api';
import { ScmIntegrations } from '@backstage/integration';
import { MockFetchApi, setupMswHandlers } from '@backstage/test-utils';
import { MockFetchApi, registerMswTestHooks } from '@backstage/test-utils';
import { rest } from 'msw';
import { setupServer } from 'msw/node';
import { ScaffolderClient } from './api';
@@ -30,7 +30,7 @@ const mockFetchEventSource = fetchEventSource as jest.MockedFunction<
const server = setupServer();
describe('api', () => {
setupMswHandlers(server);
registerMswTestHooks(server);
const mockBaseUrl = 'http://backstage/api';
const discoveryApi = { getBaseUrl: async () => mockBaseUrl };

Some files were not shown because too many files have changed in this diff Show More