v1.1.0: pooled runtime, 959 tests, production hardening (0 squash)
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import assert from 'node:assert'
|
||||
import { describe, it } from 'node:test'
|
||||
import { expect as dslExpect } from 'imhotep-dsl'
|
||||
import type { ImhotepUi } from './public.js'
|
||||
import {
|
||||
touchTarget,
|
||||
toolbarAlignment,
|
||||
cardSpacing,
|
||||
formLabelAlignment,
|
||||
modalContainment,
|
||||
} from './presets.js'
|
||||
|
||||
function createPresetUi(): ImhotepUi {
|
||||
return {
|
||||
expect: (subject: string | any) => dslExpect(String(subject)),
|
||||
} as unknown as ImhotepUi
|
||||
}
|
||||
|
||||
describe('preset contracts', () => {
|
||||
it('touchTarget emits width and height clauses', () => {
|
||||
const result = touchTarget(createPresetUi(), '.button')
|
||||
assert.strictEqual(result.assertions.length, 2)
|
||||
assert.ok(result.clauses.some((c) => c.relation === 'size.atLeast' && c.options?.dimension === 'width'))
|
||||
assert.ok(result.clauses.some((c) => c.relation === 'size.atLeast' && c.options?.dimension === 'height'))
|
||||
})
|
||||
|
||||
it('toolbarAlignment emits pairwise spacing and alignment clauses', () => {
|
||||
const result = toolbarAlignment(createPresetUi(), ['.a', '.b', '.c'])
|
||||
assert.strictEqual(result.assertions.length, 4)
|
||||
assert.ok(result.clauses.some((c) => c.relation === 'leftOf'))
|
||||
assert.ok(result.clauses.some((c) => c.relation === 'alignedWith'))
|
||||
})
|
||||
|
||||
it('cardSpacing emits horizontal gap contract', () => {
|
||||
const result = cardSpacing(createPresetUi(), '.card-a', '.card-b', { minGap: 20 })
|
||||
assert.strictEqual(result.assertions.length, 2)
|
||||
const leftOf = result.clauses.find((c) => c.relation === 'leftOf')
|
||||
assert.strictEqual(leftOf?.bounds?.minGap, 20)
|
||||
})
|
||||
|
||||
it('formLabelAlignment supports above mode', () => {
|
||||
const result = formLabelAlignment(createPresetUi(), '.label', '.input', { labelAbove: true })
|
||||
assert.ok(result.clauses.some((c) => c.relation === 'above'))
|
||||
})
|
||||
|
||||
it('modalContainment emits containment clauses', () => {
|
||||
const result = modalContainment(createPresetUi(), '.modal')
|
||||
assert.ok(result.clauses.some((c) => c.relation === 'inside'))
|
||||
assert.ok(result.clauses.some((c) => c.relation === 'centeredWithin'))
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user