39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import { describe, expect, it, vi } from 'vitest';
|
|
import { mock } from 'vitest-mock-extended';
|
|
|
|
import type { ConditionStateManager } from '../../../src/condition-trigger/conditions/state-manager';
|
|
import {
|
|
getConditionStateManagerViaEvent,
|
|
type ConditionStateManagerGetEvent,
|
|
} from '../../../src/condition-trigger/conditions/state-manager-via-event';
|
|
|
|
// @vitest-environment jsdom
|
|
describe('getConditionStateManagerViaEvent', () => {
|
|
it('should dispatch event and retrieve state manager', () => {
|
|
const element = document.createElement('div');
|
|
const stateManager = mock<ConditionStateManager>();
|
|
|
|
const handler = vi.fn().mockImplementation((ev: ConditionStateManagerGetEvent) => {
|
|
ev.conditionStateManager = stateManager;
|
|
});
|
|
element.addEventListener(
|
|
'advanced-camera-card:condition-state-manager:get',
|
|
handler,
|
|
);
|
|
|
|
expect(getConditionStateManagerViaEvent(element)).toBe(stateManager);
|
|
});
|
|
|
|
it('should dispatch event and retrieve state manager', () => {
|
|
const element = document.createElement('div');
|
|
|
|
const handler = vi.fn();
|
|
element.addEventListener(
|
|
'advanced-camera-card:condition-state-manager:get',
|
|
handler,
|
|
);
|
|
|
|
expect(getConditionStateManagerViaEvent(element)).toBeNull();
|
|
});
|
|
});
|