mirror of
https://github.com/zoriya/v10.git
synced 2026-08-16 02:45:09 +00:00
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
|
|
import { createCoreTestStore, createMockHost } from '../../tests/test-utils';
|
|
import { RequestController } from '../request-controller';
|
|
|
|
describe('RequestController', () => {
|
|
it('returns request function', () => {
|
|
const { store } = createCoreTestStore();
|
|
const host = createMockHost();
|
|
|
|
const controller = new RequestController(host, store, 'setVolume');
|
|
|
|
expect(typeof controller.value).toBe('function');
|
|
});
|
|
|
|
it('registers with host', () => {
|
|
const { store } = createCoreTestStore();
|
|
const host = createMockHost();
|
|
|
|
const controller = new RequestController(host, store, 'setVolume');
|
|
|
|
expect(host.controllers.has(controller)).toBe(true);
|
|
});
|
|
|
|
it('returns stable reference', () => {
|
|
const { store } = createCoreTestStore();
|
|
const host = createMockHost();
|
|
|
|
const controller = new RequestController(host, store, 'setVolume');
|
|
const first = controller.value;
|
|
const second = controller.value;
|
|
|
|
expect(first).toBe(second);
|
|
});
|
|
|
|
it('request works correctly', async () => {
|
|
const { store, target } = createCoreTestStore();
|
|
const host = createMockHost();
|
|
|
|
const controller = new RequestController(host, store, 'setVolume');
|
|
await controller.value(0.7);
|
|
|
|
expect(target.volume).toBe(0.7);
|
|
});
|
|
});
|