| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import test from 'node:test'
- import assert from 'node:assert/strict'
- import {
- displayLabelForModelValue,
- normalizedModelValue,
- syncStateFromModelValue
- } from './choiceComboboxHelpers.js'
- const choices = [
- { title: 'Production', value: 'prod' },
- { title: 'Staging', value: 'stage' }
- ]
- test('displayLabelForModelValue returns the choice label for valid values', () => {
- assert.equal(displayLabelForModelValue(choices, 'prod'), 'Production')
- })
- test('displayLabelForModelValue clears invalid enum values instead of echoing them', () => {
- assert.equal(displayLabelForModelValue(choices, 'missing'), '')
- })
- test('normalizedModelValue keeps valid values and clears invalid ones', () => {
- assert.equal(normalizedModelValue(choices, 'stage'), 'stage')
- assert.equal(normalizedModelValue(choices, 'missing'), '')
- assert.equal(normalizedModelValue(choices, ''), '')
- })
- test('syncStateFromModelValue clears invalid selections for closed-state sync', () => {
- assert.deepEqual(syncStateFromModelValue(choices, 'missing'), {
- query: '',
- modelValue: ''
- })
- })
- test('syncStateFromModelValue preserves valid selections for closed-state sync', () => {
- assert.deepEqual(syncStateFromModelValue(choices, 'stage'), {
- query: 'Staging',
- modelValue: 'stage'
- })
- })
|