@pie-element/shared-test-utils
v0.1.0
Published
Testing utilities for PIE elements
Maintainers
Keywords
Readme
@pie-element/test-utils
Testing utilities for PIE element development.
Installation
bun add -D @pie-element/test-utilsUsage
Controller Testing
import { testController, testEnvironments } from '@pie-element/test-utils';
import { myController } from './controller';
const testCases = [
{
name: 'returns correct view model in gather mode',
question: { id: '1', element: '@pie-element/my-element' },
session: null,
env: testEnvironments.studentGather,
expectedViewModel: {
disabled: false,
mode: 'gather',
},
},
];
const results = await testController(myController, testCases);
console.log(results); // [{ passed: true, testCase: '...', errors: [] }]Fixtures
import { createTestModel, createTestSession, testPrompts } from '@pie-element/test-utils';
const model = createTestModel({ prompt: testPrompts.withMath });
const session = createTestSession({ value: ['answer1'] });Web Component Testing
import {
mountComponent,
waitForEvent,
simulateClick,
querySelector,
} from '@pie-element/test-utils';
// Mount a component
const element = await mountComponent('my-element', {
model: myModel,
session: mySession,
});
// Wait for events
const sessionData = await waitForEvent(element, 'pie.session_changed');
// Simulate interactions
const button = querySelector(element, 'button');
simulateClick(button);API Reference
See TypeScript definitions for complete API documentation.