# What this PR does Cleanup error logs on frontend unit test run ## Which issue(s) this PR closes Closes https://github.com/grafana/oncall/issues/3428 ## Checklist - [x] Unit, integration, and e2e (if applicable) tests updated - [x] Documentation added (or `pr:no public docs` PR label added if not required) - [x] Added the relevant release notes label (see labels prefixed w/ `release:`). These labels dictate how your PR will show up in the autogenerated release notes.
82 lines
1.8 KiB
TypeScript
82 lines
1.8 KiB
TypeScript
/**
|
|
* globally import this, avoids needing to import it in each file
|
|
* https://stackoverflow.com/a/65871118
|
|
*/
|
|
import '@testing-library/jest-dom';
|
|
|
|
import 'plugin/dayjs';
|
|
|
|
import { TextEncoder, TextDecoder } from 'util';
|
|
|
|
jest.mock('@grafana/runtime', () => ({
|
|
__esModule: true,
|
|
config: {
|
|
featureToggles: {
|
|
topNav: false,
|
|
},
|
|
bootData: {
|
|
user: {
|
|
timezone: 'UTC',
|
|
},
|
|
},
|
|
},
|
|
getBackendSrv: jest.fn().mockImplementation(() => ({
|
|
get: jest.fn(),
|
|
post: jest.fn(),
|
|
})),
|
|
getLocationSrv: jest.fn(),
|
|
}));
|
|
|
|
Object.assign(global, { TextDecoder, TextEncoder });
|
|
|
|
// https://stackoverflow.com/a/66055672
|
|
// https://jestjs.io/docs/manual-mocks#mocking-methods-which-are-not-implemented-in-jsdom
|
|
Object.defineProperty(window, 'matchMedia', {
|
|
writable: true,
|
|
value: jest.fn().mockImplementation((query) => ({
|
|
matches: false,
|
|
media: query,
|
|
onchange: null,
|
|
addListener: jest.fn(), // Deprecated
|
|
removeListener: jest.fn(), // Deprecated
|
|
addEventListener: jest.fn(),
|
|
removeEventListener: jest.fn(),
|
|
dispatchEvent: jest.fn(),
|
|
})),
|
|
});
|
|
|
|
Object.defineProperty(window, 'location', {
|
|
configurable: true,
|
|
value: { reload: jest.fn() },
|
|
});
|
|
|
|
Object.defineProperty(window, 'ResizeObserver', {
|
|
writable: true,
|
|
value: class ResizeObserver {
|
|
constructor(callback: ResizeObserverCallback) {
|
|
setTimeout(() => {
|
|
callback(
|
|
[
|
|
{
|
|
contentRect: {
|
|
x: 1,
|
|
y: 2,
|
|
width: 500,
|
|
height: 500,
|
|
top: 100,
|
|
bottom: 0,
|
|
left: 100,
|
|
right: 0,
|
|
},
|
|
target: {},
|
|
} as ResizeObserverEntry,
|
|
],
|
|
this
|
|
);
|
|
});
|
|
}
|
|
observe() {}
|
|
disconnect() {}
|
|
unobserve() {}
|
|
},
|
|
});
|