kibana/packages/kbn-reporting/common/cancellation_token.test.ts
Rachel Shen e35e924d92
[Reporting] Generate CSV Package (#151801)
## Summary

Partially resolves https://github.com/elastic/kibana/issues/150392 

This PR creates reporting related packages geared towards `Generate CSV`
functionality
- @kbn/generate-csv
- @kbn/generate-csv-types
- @kbn/reporting-common
- updated Readme.md for the @kbn/reporting plugin

### Checklist

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Co-authored-by: Tim Sullivan <tsullivan@users.noreply.github.com>
Co-authored-by: Timothy Sullivan <tsullivan@elastic.co>
2023-04-13 10:27:35 -07:00

51 lines
1.6 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
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
import { CancellationToken } from './cancellation_token';
describe('Cancellation Token', () => {
it('registers callbacks for cancellation events', () => {
const cancellationToken = new CancellationToken();
const onCancelled = jest.fn();
cancellationToken.on(onCancelled);
cancellationToken.cancel();
expect(onCancelled).toBeCalled();
});
it('emits a cancellation event immediately when already cancelled', () => {
const cancellationToken = new CancellationToken();
const onCancelled = jest.fn();
cancellationToken.cancel();
cancellationToken.on(onCancelled);
expect(onCancelled).toBeCalled();
});
it('binds the `on` method properly so that it can be passed around', () => {
const cancellationToken = new CancellationToken();
const onCancelled = jest.fn();
const unboundOn = cancellationToken.on;
cancellationToken.cancel();
unboundOn(onCancelled);
expect(onCancelled).toBeCalled();
});
it('binds the `cancel` method properly so that it can be passed around', () => {
const cancellationToken = new CancellationToken();
const onCancelled = jest.fn();
const unboundCancel = cancellationToken.cancel;
unboundCancel();
cancellationToken.on(onCancelled);
expect(onCancelled).toBeCalled();
});
});