Due to the pattern `**/specs/*.spec.js` defined in CircleCI, none of the frontend spec in the folders such as `specs/<domain-name>/getters.spec.js` were not executed in Circle CI. This PR fixes the issue, along with the following changes: - Use vitest instead of jest - Remove jest dependancies - Update tests to work with vitest --------- Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
48 lines
1.1 KiB
JavaScript
48 lines
1.1 KiB
JavaScript
import { shallowMount } from '@vue/test-utils';
|
|
import { emitter } from 'shared/helpers/mitt';
|
|
import { useEmitter } from '../emitter';
|
|
|
|
vi.mock('shared/helpers/mitt', () => ({
|
|
emitter: {
|
|
on: vi.fn(),
|
|
off: vi.fn(),
|
|
},
|
|
}));
|
|
|
|
describe('useEmitter', () => {
|
|
let wrapper;
|
|
const eventName = 'my-event';
|
|
const callback = vi.fn();
|
|
|
|
beforeEach(() => {
|
|
wrapper = shallowMount({
|
|
template: `
|
|
<div>
|
|
Hello world
|
|
</div>
|
|
`,
|
|
setup() {
|
|
return {
|
|
cleanup: useEmitter(eventName, callback),
|
|
};
|
|
},
|
|
});
|
|
});
|
|
|
|
it('should add an event listener on mount', () => {
|
|
expect(emitter.on).toHaveBeenCalledWith(eventName, callback);
|
|
});
|
|
|
|
it('should remove the event listener when the component is unmounted', () => {
|
|
wrapper.destroy();
|
|
expect(emitter.off).toHaveBeenCalledWith(eventName, callback);
|
|
});
|
|
|
|
it('should return the cleanup function', () => {
|
|
const cleanup = wrapper.vm.cleanup;
|
|
expect(typeof cleanup).toBe('function');
|
|
cleanup();
|
|
expect(emitter.off).toHaveBeenCalledWith(eventName, callback);
|
|
});
|
|
});
|