29 lines
861 B
TypeScript
29 lines
861 B
TypeScript
import { PageViewId } from '@core/analytics/domain/value-objects/PageViewId';
|
|
|
|
describe('PageViewId', () => {
|
|
it('creates a valid PageViewId from a non-empty string', () => {
|
|
const id = PageViewId.create('pv_123');
|
|
|
|
expect(id.value).toBe('pv_123');
|
|
});
|
|
|
|
it('trims whitespace from the raw value', () => {
|
|
const id = PageViewId.create(' pv_456 ');
|
|
|
|
expect(id.value).toBe('pv_456');
|
|
});
|
|
|
|
it('throws for empty or whitespace-only strings', () => {
|
|
expect(() => PageViewId.create('')).toThrow(Error);
|
|
expect(() => PageViewId.create(' ')).toThrow(Error);
|
|
});
|
|
|
|
it('compares equality based on underlying value', () => {
|
|
const a = PageViewId.create('pv_1');
|
|
const b = PageViewId.create('pv_1');
|
|
const c = PageViewId.create('pv_2');
|
|
|
|
expect(a.equals(b)).toBe(true);
|
|
expect(a.equals(c)).toBe(false);
|
|
});
|
|
}); |