mirror of
https://github.com/grafana/grafana.git
synced 2024-11-25 10:20:29 -06:00
4b711372c5
* Tests: Adds expects for observables * Refactor: renames matcher * Chore: changed jest version and removed as dev dependency * Refactor: Changes after PR review * wip * Chore: revert * Chore: Adds jest-matcher-utils * Chore: fixed merge error * Tests: Removed inline snapshots as they are env dependent * Tests: missed a snapshot * Refactor: Removed type file after PR comments
63 lines
1.7 KiB
TypeScript
63 lines
1.7 KiB
TypeScript
import { matcherHint, printExpected, printReceived } from 'jest-matcher-utils';
|
|
import { OBSERVABLE_TEST_TIMEOUT_IN_MS } from './types';
|
|
import { asapScheduler, Observable, Subscription, timer } from 'rxjs';
|
|
|
|
export function forceObservableCompletion(subscription: Subscription, resolve: (args: any) => void) {
|
|
const timeoutObservable = timer(OBSERVABLE_TEST_TIMEOUT_IN_MS, asapScheduler);
|
|
|
|
subscription.add(
|
|
timeoutObservable.subscribe(() => {
|
|
subscription.unsubscribe();
|
|
resolve({
|
|
pass: false,
|
|
message: () =>
|
|
`${matcherHint('.toEmitValues')}
|
|
|
|
Expected ${printReceived('Observable')} to be ${printExpected(
|
|
`completed within ${OBSERVABLE_TEST_TIMEOUT_IN_MS}ms`
|
|
)} but it did not.`,
|
|
});
|
|
})
|
|
);
|
|
}
|
|
|
|
export function expectObservableToBeDefined(received: any): jest.CustomMatcherResult | null {
|
|
if (received) {
|
|
return null;
|
|
}
|
|
|
|
return {
|
|
pass: false,
|
|
message: () => `${matcherHint('.toEmitValues')}
|
|
|
|
Expected ${printReceived(received)} to be ${printExpected('defined')}.`,
|
|
};
|
|
}
|
|
|
|
export function expectObservableToBeObservable(received: any): jest.CustomMatcherResult | null {
|
|
if (received instanceof Observable) {
|
|
return null;
|
|
}
|
|
|
|
return {
|
|
pass: false,
|
|
message: () => `${matcherHint('.toEmitValues')}
|
|
|
|
Expected ${printReceived(received)} to be ${printExpected('an Observable')}.`,
|
|
};
|
|
}
|
|
|
|
export function expectObservable(received: any): jest.CustomMatcherResult | null {
|
|
const toBeDefined = expectObservableToBeDefined(received);
|
|
if (toBeDefined) {
|
|
return toBeDefined;
|
|
}
|
|
|
|
const toBeObservable = expectObservableToBeObservable(received);
|
|
if (toBeObservable) {
|
|
return toBeObservable;
|
|
}
|
|
|
|
return null;
|
|
}
|