Skip to content

Commit 6486856

Browse files
committed
added jest test
1 parent ba9bf3d commit 6486856

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the Elastic License
4+
* 2.0; you may not use this file except in compliance with the Elastic License
5+
* 2.0.
6+
*/
7+
8+
import { HeadlessChromiumDriver } from '../../browsers';
9+
import {
10+
createMockBrowserDriverFactory,
11+
createMockConfig,
12+
createMockConfigSchema,
13+
createMockLayoutInstance,
14+
createMockLevelLogger,
15+
createMockReportingCore,
16+
} from '../../test_helpers';
17+
import { CaptureConfig } from '../../types';
18+
import { LayoutInstance } from '../layouts';
19+
import { LevelLogger } from '../level_logger';
20+
import { getRenderErrors } from './get_render_errors';
21+
22+
describe('getRenderErrors', () => {
23+
let captureConfig: CaptureConfig;
24+
let layout: LayoutInstance;
25+
let logger: jest.Mocked<LevelLogger>;
26+
let browser: HeadlessChromiumDriver;
27+
28+
beforeEach(async () => {
29+
const schema = createMockConfigSchema();
30+
const config = createMockConfig(schema);
31+
const core = await createMockReportingCore(schema);
32+
33+
captureConfig = config.get('capture');
34+
layout = createMockLayoutInstance(captureConfig);
35+
logger = createMockLevelLogger();
36+
37+
await createMockBrowserDriverFactory(core, logger, {
38+
evaluate: jest.fn(
39+
async <T extends (...args: unknown[]) => unknown>({
40+
fn,
41+
args,
42+
}: {
43+
fn: T;
44+
args: Parameters<T>;
45+
}) => fn(...args)
46+
),
47+
getCreatePage: (driver) => {
48+
browser = driver;
49+
50+
return jest.fn();
51+
},
52+
});
53+
});
54+
55+
afterEach(() => {
56+
document.body.innerHTML = '';
57+
});
58+
59+
it('should extract the error messages', async () => {
60+
document.body.innerHTML = `
61+
<renderedSelector data-render-error="a test error" />
62+
<renderedSelector data-render-error="a test error" />
63+
<renderedSelector data-render-error="a test error" />
64+
<renderedSelector data-render-error="a test error" />
65+
`;
66+
67+
await expect(getRenderErrors(browser, layout, logger)).resolves.toEqual([
68+
'a test error',
69+
'a test error',
70+
'a test error',
71+
'a test error',
72+
]);
73+
});
74+
75+
it('should extract the error messages, even when there are none', async () => {
76+
document.body.innerHTML = `
77+
<renderedSelector />
78+
`;
79+
80+
await expect(getRenderErrors(browser, layout, logger)).resolves.toEqual([]);
81+
});
82+
});

0 commit comments

Comments
 (0)