aba2068291
Jest tests are currently organized into main configuration files (src/dev/jest/config.js and x-pack/dev-tools/jest/create_jest_config.js). Both of these are similar, but very slightly due to previously being in separate repositories. This change consolidates the scripts referenced in those configs and moves them to the `@kbn/test` project. OSS contained an alias for `test_utils`. Those aliases have been removed in favor of importing these utilities from `@kbn/test/jest` Blocker to #72569 Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
32 lines
1.2 KiB
TypeScript
32 lines
1.2 KiB
TypeScript
/*
|
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
* or more contributor license agreements. Licensed under the Elastic License;
|
|
* you may not use this file except in compliance with the Elastic License.
|
|
*/
|
|
|
|
import React from 'react';
|
|
import { mountWithIntl as mount } from '@kbn/test/jest';
|
|
import { debouncedComponent } from './debounced_component';
|
|
import { act } from 'react-dom/test-utils';
|
|
|
|
describe('debouncedComponent', () => {
|
|
test('immediately renders', () => {
|
|
const TestComponent = debouncedComponent(({ title }: { title: string }) => {
|
|
return <h1>{title}</h1>;
|
|
});
|
|
expect(mount(<TestComponent title="hoi" />).html()).toMatchInlineSnapshot(`"<h1>hoi</h1>"`);
|
|
});
|
|
|
|
test('debounces changes', async () => {
|
|
const TestComponent = debouncedComponent(({ title }: { title: string }) => {
|
|
return <h1>{title}</h1>;
|
|
}, 1);
|
|
const component = mount(<TestComponent title="there" />);
|
|
component.setProps({ title: 'yall' });
|
|
expect(component.text()).toEqual('there');
|
|
await act(async () => {
|
|
await new Promise((r) => setTimeout(r, 1));
|
|
});
|
|
expect(component.text()).toEqual('yall');
|
|
});
|
|
});
|