@spectrum-web-components/number-field 0.3.7 → 0.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-field.test.js","sourceRoot":"","sources":["number-field.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*\nCopyright 2020 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\n\nimport { html } from '@spectrum-web-components/base';\nimport { elementUpdated, expect, nextFrame, oneEvent } from '@open-wc/testing';\nimport polyfillCheck from '@formatjs/intl-numberformat/should-polyfill.js';\n\nimport {\n currency,\n decimals,\n Default,\n indeterminate,\n percents,\n pixels,\n units,\n} from '../stories/number-field.stories.js';\nimport '../sp-number-field.js';\nimport { FRAMES_PER_CHANGE, indeterminatePlaceholder, NumberField } from '..';\nimport { sendKeys, setUserAgent } from '@web/test-runner-commands';\nimport { spy } from 'sinon';\nimport {\n clickBySelector,\n createLanguageContext,\n getElFrom,\n} from './helpers.js';\nimport { sendMouse } from '../../../test/plugins/browser.js';\n\ndescribe('NumberField', () => {\n before(async () => {\n if (polyfillCheck.shouldPolyfill()) {\n await import('@formatjs/intl-numberformat/polyfill.js');\n }\n if (\n (Intl.NumberFormat as unknown as { polyfilled: boolean }).polyfilled\n ) {\n await import('@formatjs/intl-numberformat/locale-data/en.js');\n await import('@formatjs/intl-numberformat/locale-data/fr.js');\n }\n });\n it('loads default number-field accessibly', async () => {\n const el = await getElFrom(Default({}));\n await elementUpdated(el);\n\n await expect(el).to.be.accessible();\n });\n describe('receives input', () => {\n it('without language context', async () => {\n const el = await getElFrom(Default({ value: 1337 }));\n expect(el.formattedValue).to.equal('1,337');\n expect(el.valueAsString).to.equal('1337');\n expect(el.value).to.equal(1337);\n el.focus();\n await sendKeys({ type: '7331' });\n await elementUpdated(el);\n await sendKeys({ press: 'Enter' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('13,377,331');\n expect(el.valueAsString).to.equal('13377331');\n expect(el.value).to.equal(13377331);\n });\n it('with language context', async () => {\n const languageContext = createLanguageContext('fr');\n const el = await getElFrom(html`\n <div @sp-language-context=${languageContext}>\n ${Default({ value: 1337 })}\n </div>\n `);\n expect(el.formattedValue).to.equal('1 337');\n expect(el.valueAsString).to.equal('1337');\n expect(el.value).to.equal(1337);\n el.focus();\n await sendKeys({ type: '7331' });\n await elementUpdated(el);\n await sendKeys({ press: 'Enter' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('13 377 331');\n expect(el.valueAsString).to.equal('13377331');\n expect(el.value).to.equal(13377331);\n });\n });\n describe('Step', () => {\n it('can be 0', async () => {\n const el = await getElFrom(\n Default({\n step: 0,\n min: 0,\n max: 10,\n value: 5,\n })\n );\n expect(el.value).to.equal(5);\n expect(el.formattedValue).to.equal('5');\n expect(el.valueAsString).to.equal('5');\n });\n });\n describe('Increments', () => {\n let el: NumberField;\n beforeEach(async () => {\n el = await getElFrom(Default({}));\n expect(el.value).to.be.NaN;\n expect(el.formattedValue).to.equal('');\n expect(el.valueAsString).to.equal('NaN');\n });\n it('via pointer, only \"left\" button', async () => {\n await clickBySelector(el, '.stepUp', { button: 'middle' });\n expect(el.formattedValue).to.equal('');\n expect(el.valueAsString).to.equal('NaN');\n expect(el.value).to.be.NaN;\n });\n it('via pointer', async () => {\n await clickBySelector(el, '.stepUp');\n expect(el.formattedValue).to.equal('0');\n expect(el.valueAsString).to.equal('0');\n expect(el.value).to.equal(0);\n await clickBySelector(el, '.stepUp');\n expect(el.formattedValue).to.equal('1');\n expect(el.valueAsString).to.equal('1');\n expect(el.value).to.equal(1);\n });\n it('via arrow up', async () => {\n el.focus();\n await elementUpdated(el);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('0');\n expect(el.valueAsString).to.equal('0');\n expect(el.value).to.equal(0);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('1');\n expect(el.valueAsString).to.equal('1');\n expect(el.value).to.equal(1);\n });\n it('via arrow up (shift modified)', async () => {\n el.focus();\n await elementUpdated(el);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('0');\n expect(el.valueAsString).to.equal('0');\n expect(el.value).to.equal(0);\n await sendKeys({ press: 'Shift+ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('10');\n expect(el.valueAsString).to.equal('10');\n expect(el.value).to.equal(10);\n });\n it('via arrow up (custom shift modified value)', async () => {\n el.focus();\n (el as NumberField).stepModifier = 5;\n (el as NumberField).step = 3;\n await elementUpdated(el);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('0');\n expect(el.valueAsString).to.equal('0');\n expect(el.value).to.equal(0);\n await sendKeys({ press: 'Shift+ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('15');\n expect(el.valueAsString).to.equal('15');\n expect(el.value).to.equal(15);\n });\n it('via scroll', async () => {\n el.focus();\n await elementUpdated(el);\n expect(el.focused).to.be.true;\n el.dispatchEvent(new WheelEvent('wheel', { deltaY: 1 }));\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('0');\n expect(el.valueAsString).to.equal('0');\n expect(el.value).to.equal(0);\n el.dispatchEvent(new WheelEvent('wheel', { deltaY: 100 }));\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('1');\n expect(el.valueAsString).to.equal('1');\n expect(el.value).to.equal(1);\n });\n it('via scroll (shift modified)', async () => {\n el.focus();\n await elementUpdated(el);\n expect(el.focused).to.be.true;\n el.dispatchEvent(\n new WheelEvent('wheel', {\n deltaX: 1,\n shiftKey: true,\n })\n );\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('0');\n expect(el.valueAsString).to.equal('0');\n expect(el.value).to.equal(0);\n el.dispatchEvent(\n new WheelEvent('wheel', {\n deltaX: 100,\n shiftKey: true,\n })\n );\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('10');\n expect(el.valueAsString).to.equal('10');\n expect(el.value).to.equal(10);\n });\n });\n describe('Decrements', () => {\n let el: NumberField;\n beforeEach(async () => {\n el = await getElFrom(Default({}));\n expect(el.value).to.be.NaN;\n expect(el.formattedValue).to.equal('');\n expect(el.valueAsString).to.equal('NaN');\n });\n it('via pointer, only \"left\" button', async () => {\n await clickBySelector(el, '.stepDown', { button: 'middle' });\n expect(el.formattedValue).to.equal('');\n expect(el.valueAsString).to.equal('NaN');\n expect(el.value).to.be.NaN;\n });\n it('via pointer', async () => {\n await clickBySelector(el, '.stepDown');\n expect(el.formattedValue).to.equal('0');\n expect(el.valueAsString).to.equal('0');\n expect(el.value).to.equal(0);\n await clickBySelector(el, '.stepDown');\n expect(el.formattedValue).to.equal('-1');\n expect(el.valueAsString).to.equal('-1');\n expect(el.value).to.equal(-1);\n });\n it('via arrow down', async () => {\n el.focus();\n await elementUpdated(el);\n await sendKeys({ press: 'ArrowDown' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('0');\n expect(el.valueAsString).to.equal('0');\n expect(el.value).to.equal(0);\n await sendKeys({ press: 'ArrowDown' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('-1');\n expect(el.valueAsString).to.equal('-1');\n expect(el.value).to.equal(-1);\n });\n it('via arrow down (shift modified)', async () => {\n el.focus();\n await elementUpdated(el);\n await sendKeys({ press: 'ArrowDown' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('0');\n expect(el.valueAsString).to.equal('0');\n expect(el.value).to.equal(0);\n await sendKeys({ press: 'Shift+ArrowDown' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('-10');\n expect(el.valueAsString).to.equal('-10');\n expect(el.value).to.equal(-10);\n });\n it('via arrow up (custom shift modified value)', async () => {\n el.focus();\n (el as NumberField).stepModifier = 5;\n (el as NumberField).step = 3;\n await elementUpdated(el);\n await sendKeys({ press: 'ArrowDown' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('0');\n expect(el.valueAsString).to.equal('0');\n expect(el.value).to.equal(0);\n await sendKeys({ press: 'Shift+ArrowDown' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('-15');\n expect(el.valueAsString).to.equal('-15');\n expect(el.value).to.equal(-15);\n });\n it('via scroll', async () => {\n el.focus();\n await elementUpdated(el);\n expect(el.focused).to.be.true;\n el.dispatchEvent(new WheelEvent('wheel', { deltaY: -1 }));\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('0');\n expect(el.valueAsString).to.equal('0');\n expect(el.value).to.equal(0);\n el.dispatchEvent(new WheelEvent('wheel', { deltaY: -100 }));\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('-1');\n expect(el.valueAsString).to.equal('-1');\n expect(el.value).to.equal(-1);\n });\n it('via scroll (shift modified)', async () => {\n el.focus();\n await elementUpdated(el);\n expect(el.focused).to.be.true;\n el.dispatchEvent(\n new WheelEvent('wheel', {\n deltaX: -1,\n shiftKey: true,\n })\n );\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('0');\n expect(el.valueAsString).to.equal('0');\n expect(el.value).to.equal(0);\n el.dispatchEvent(\n new WheelEvent('wheel', {\n deltaX: -100,\n shiftKey: true,\n })\n );\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('-10');\n expect(el.valueAsString).to.equal('-10');\n expect(el.value).to.equal(-10);\n });\n });\n describe('dispatched events', () => {\n const inputSpy = spy();\n const changeSpy = spy();\n let el: NumberField;\n beforeEach(async () => {\n inputSpy.resetHistory();\n changeSpy.resetHistory();\n el = await getElFrom(Default({ value: 50 }));\n el.addEventListener('input', (event: Event) => {\n inputSpy((event.target as NumberField)?.value);\n });\n el.addEventListener('change', (event: Event) => {\n changeSpy((event.target as NumberField)?.value);\n });\n });\n it('has a useful `value`', async () => {\n el.focus();\n await sendKeys({ type: '7' });\n await sendKeys({ press: 'Enter' });\n expect(inputSpy.calledWith(507), 'input').to.be.true;\n expect(changeSpy.calledWith(507), 'change').to.be.true;\n await sendKeys({ type: ',00' });\n await sendKeys({ press: 'Enter' });\n expect(inputSpy.calledWith(5070), 'input').to.be.true;\n expect(inputSpy.calledWith(50700), 'input').to.be.true;\n expect(changeSpy.calledWith(50700), 'change').to.be.true;\n });\n it('has a useful `value` - percent', async () => {\n el.formatOptions = { style: 'percent' };\n el.value = 0.45;\n expect(el.value).to.equal(0.45);\n el.focus();\n await sendKeys({ type: '7' }); // Visible text: 45%7\n expect(inputSpy.calledWith(4.57), 'first input').to.be.true;\n await sendKeys({ press: 'Backspace' }); // Visible text: 45%\n await sendKeys({ press: 'Backspace' }); // Visible text: 45\n await sendKeys({ press: 'Backspace' }); // Visible text: 4\n await sendKeys({ press: 'Enter' });\n expect(el.value).to.equal(0.04);\n expect(inputSpy.calledWith(0.45), 'second input').to.be.true;\n expect(inputSpy.calledWith(0.04), 'third input').to.be.true;\n expect(changeSpy.calledWith(0.04), 'change').to.be.true;\n });\n it('has a useful `value` - currency', async () => {\n el.formatOptions = {\n style: 'currency',\n currency: 'EUR',\n currencyDisplay: 'code',\n currencySign: 'accounting',\n };\n await elementUpdated(el);\n el.value = 45;\n expect(el.value).to.equal(45);\n el.focus();\n await sendKeys({ type: '7' }); // Visible text: EUR 45.007\n expect(el.value).to.equal(45.007);\n expect(inputSpy.calledWith(el.value), 'first input').to.be.true;\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR 45.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR 45.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR 45.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR 45.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR 45.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR 45.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR 45.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR 45.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR 45.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR 45.007\n await sendKeys({ type: '1' }); // Visible text: 1EUR 45.007\n await sendKeys({ press: 'Enter' }); // Visible text: EUR 145.01\n expect(el.value).to.equal(145.007);\n expect(inputSpy.calledWith(145.007), 'second input').to.be.true;\n expect(changeSpy.calledWith(145.007), 'change').to.be.true;\n });\n it('one input/one change for each Arrow*', async () => {\n el.focus();\n await sendKeys({ press: 'ArrowUp' });\n expect(inputSpy.callCount).to.equal(1);\n expect(changeSpy.callCount).to.equal(1);\n expect(el.value).to.equal(51);\n await sendKeys({ press: 'ArrowDown' });\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n expect(el.value).to.equal(50);\n });\n it('one input/one change for each click', async () => {\n await clickBySelector(el, '.stepUp');\n expect(inputSpy.callCount).to.equal(1);\n expect(changeSpy.callCount).to.equal(1);\n expect(el.value).to.equal(51);\n await clickBySelector(el, '.stepDown');\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n expect(el.value).to.equal(50);\n });\n it('click with modifier key', async () => {\n let target = el.shadowRoot.querySelector('.stepUp') as HTMLElement;\n const stepUpRect = target.getBoundingClientRect();\n const options = {\n bubbles: true,\n composed: true,\n shiftKey: true,\n clientX: stepUpRect.x + 1,\n clientY: stepUpRect.y + 1,\n };\n (\n el as unknown as {\n buttons: HTMLDivElement;\n }\n ).buttons.setPointerCapture = () => {\n return;\n };\n (\n el as unknown as {\n buttons: HTMLDivElement;\n }\n ).buttons.releasePointerCapture = () => {\n return;\n };\n let input = oneEvent(el, 'input');\n target.dispatchEvent(new PointerEvent('pointerdown', options));\n await input;\n target.dispatchEvent(new PointerEvent('pointerup', options));\n expect(inputSpy.callCount).to.equal(1);\n expect(changeSpy.callCount).to.equal(1);\n expect(el.value).to.equal(60);\n target = el.shadowRoot.querySelector('.stepDown') as HTMLElement;\n const stepDownRect = target.getBoundingClientRect();\n options.clientX = stepDownRect.x + 1;\n options.clientY = stepDownRect.y + 1;\n input = oneEvent(el, 'input');\n target.dispatchEvent(new PointerEvent('pointerdown', options));\n await input;\n target.dispatchEvent(new PointerEvent('pointerup', options));\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(2);\n expect(el.value).to.equal(50);\n });\n it('many input, but one change', async () => {\n const buttonUp = el.shadowRoot.querySelector(\n '.stepUp'\n ) as HTMLElement;\n const buttonUpRect = buttonUp.getBoundingClientRect();\n const buttonUpPosition: [number, number] = [\n buttonUpRect.x + buttonUpRect.width / 2,\n buttonUpRect.y + buttonUpRect.height / 2,\n ];\n const buttonDown = el.shadowRoot.querySelector(\n '.stepDown'\n ) as HTMLElement;\n const buttonDownRect = buttonDown.getBoundingClientRect();\n const buttonDownPosition: [number, number] = [\n buttonDownRect.x + buttonDownRect.width / 2,\n buttonDownRect.y + buttonDownRect.height / 2,\n ];\n sendMouse({\n steps: [\n {\n type: 'move',\n position: buttonUpPosition,\n },\n {\n type: 'down',\n },\n ],\n });\n await oneEvent(el, 'input');\n expect(el.value).to.equal(51);\n expect(inputSpy.callCount).to.equal(1);\n expect(changeSpy.callCount).to.equal(0);\n await oneEvent(el, 'input');\n expect(el.value).to.equal(52);\n expect(inputSpy.callCount).to.equal(2);\n expect(changeSpy.callCount).to.equal(0);\n sendMouse({\n steps: [\n {\n type: 'move',\n position: buttonDownPosition,\n },\n ],\n });\n let framesToWait = FRAMES_PER_CHANGE * 2;\n while (framesToWait) {\n // input is only processed onces per FRAMES_PER_CHANGE number of frames\n framesToWait -= 1;\n await nextFrame();\n }\n expect(inputSpy.callCount).to.equal(4);\n expect(changeSpy.callCount).to.equal(0);\n await sendMouse({\n steps: [\n {\n type: 'up',\n },\n ],\n });\n expect(inputSpy.callCount).to.equal(4);\n expect(changeSpy.callCount).to.equal(1);\n });\n });\n it('accepts pointer interactions with the stepper UI', async () => {\n const inputSpy = spy();\n const el = await getElFrom(Default({ value: 50 }));\n el.addEventListener('input', () => inputSpy());\n expect(el.formattedValue).to.equal('50');\n expect(el.valueAsString).to.equal('50');\n expect(el.value).to.equal(50);\n const buttonUp = el.shadowRoot.querySelector('.stepUp') as HTMLElement;\n const buttonUpRect = buttonUp.getBoundingClientRect();\n const buttonUpPosition: [number, number] = [\n buttonUpRect.x + buttonUpRect.width / 2,\n buttonUpRect.y + buttonUpRect.height / 2,\n ];\n const buttonDown = el.shadowRoot.querySelector(\n '.stepDown'\n ) as HTMLElement;\n const buttonDownRect = buttonDown.getBoundingClientRect();\n const buttonDownPosition: [number, number] = [\n buttonDownRect.x + buttonDownRect.width / 2,\n buttonDownRect.y + buttonDownRect.height / 2,\n ];\n const outsidePosition: [number, number] = [\n buttonDownRect.x + buttonDownRect.width + 5,\n buttonDownRect.y + buttonDownRect.height + 5,\n ];\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: buttonUpPosition,\n },\n {\n type: 'down',\n },\n ],\n });\n await oneEvent(el, 'input');\n let value = 50 + inputSpy.callCount;\n expect(el.formattedValue).to.equal(String(value));\n expect(el.valueAsString).to.equal(String(value));\n expect(el.value).to.equal(value);\n inputSpy.resetHistory();\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: buttonDownPosition,\n },\n ],\n });\n value = value - inputSpy.callCount;\n expect(el.formattedValue).to.equal(String(value));\n expect(el.valueAsString).to.equal(String(value));\n expect(el.value).to.equal(value);\n inputSpy.resetHistory();\n await sendMouse({\n steps: [\n {\n type: 'move',\n position: outsidePosition,\n },\n ],\n });\n value = value - inputSpy.callCount;\n expect(el.formattedValue).to.equal(String(value));\n expect(el.valueAsString).to.equal(String(value));\n expect(el.value).to.equal(value);\n inputSpy.resetHistory();\n await oneEvent(el, 'input');\n value = value - inputSpy.callCount;\n expect(el.formattedValue).to.equal(String(value));\n expect(el.valueAsString).to.equal(String(value));\n expect(el.value).to.equal(value);\n inputSpy.resetHistory();\n await sendMouse({\n steps: [\n {\n type: 'up',\n },\n ],\n });\n let framesToWait = FRAMES_PER_CHANGE;\n while (framesToWait) {\n // input is only processed onces per FRAMES_PER_CHANGE number of frames\n framesToWait -= 1;\n await nextFrame();\n }\n await elementUpdated(el);\n value = value - inputSpy.callCount;\n expect(el.formattedValue).to.equal(String(value));\n expect(el.valueAsString).to.equal(String(value));\n expect(el.value).to.equal(value);\n });\n it('surfaces `valueAsNumber`', async () => {\n const el = await getElFrom(Default({}));\n el.value = 1000;\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('1,000');\n expect(el.valueAsString).to.equal('1000');\n expect(el.value).to.equal(1000);\n el.valueAsString = '2222';\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('2,222');\n expect(el.valueAsString).to.equal('2222');\n expect(el.value).to.equal(2222);\n });\n describe('manages `value` with `formatOptions`', () => {\n it('manages decimals', async () => {\n const el = await getElFrom(decimals({ value: 1.333333 }));\n expect(el.value).to.equal(1.33);\n expect(el.formattedValue).to.equal('+1.33');\n expect(el.valueAsString).to.equal('1.33');\n });\n it('manages precents', async () => {\n const el = await getElFrom(percents({ value: 0.45 }));\n expect(el.formattedValue).to.equal('45%');\n expect(el.valueAsString).to.equal('0.45');\n expect(el.value).to.equal(0.45);\n await clickBySelector(el, '.stepDown');\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('44%');\n expect(el.valueAsString).to.equal('0.44');\n expect(el.value).to.equal(0.44);\n await clickBySelector(el, '.stepUp');\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('45%');\n expect(el.valueAsString).to.equal('0.45');\n expect(el.value).to.equal(0.45);\n el.focus();\n el.value = 0;\n await sendKeys({ type: '54' });\n await sendKeys({ press: 'Enter' });\n expect(el.formattedValue).to.equal('54%');\n expect(el.valueAsString).to.equal('0.54');\n expect(el.value).to.equal(0.54);\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('54%');\n expect(el.valueAsString).to.equal('0.54');\n expect(el.value).to.equal(0.54);\n });\n it('manages currency', async () => {\n const el = await getElFrom(currency({ value: 234.21 }));\n expect(el.formattedValue).to.equal('EUR 234.21');\n expect(el.valueAsString).to.equal('234.21');\n expect(el.value).to.equal(234.21);\n });\n it('manages units', async () => {\n const el = await getElFrom(units({ value: 17 }));\n expect(el.formattedValue).to.equal('17 inches');\n expect(el.valueAsString).to.equal('17');\n expect(el.value).to.equal(17);\n });\n it('manages units not supported by the browser', async () => {\n const el = await getElFrom(pixels({ value: 17 }));\n expect(el.formattedValue).to.equal('17px');\n expect(el.valueAsString).to.equal('17');\n expect(el.value).to.equal(17);\n });\n });\n describe('max', () => {\n let el: NumberField;\n let lastInputValue = 0;\n let lastChangeValue = 0;\n beforeEach(async () => {\n el = await getElFrom(\n Default({\n max: 10,\n value: 10,\n onInput: (value: number) => (lastInputValue = value),\n onChange: (value: number) => (lastChangeValue = value),\n })\n );\n expect(el.formattedValue).to.equal('10');\n expect(el.valueAsString).to.equal('10');\n expect(el.value).to.equal(10);\n });\n it('constrains input', async () => {\n el.focus();\n await sendKeys({ type: '15' });\n await sendKeys({ press: 'Enter' });\n await elementUpdated(el);\n expect(lastInputValue, 'last input value').to.equal(10);\n expect(lastChangeValue, 'last change value').to.equal(10);\n expect(el.formattedValue).to.equal('10');\n expect(el.valueAsString).to.equal('10');\n expect(el.value).to.equal(10);\n });\n it('constrains `value`', async () => {\n el.value = 20;\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('10');\n expect(el.valueAsString).to.equal('10');\n expect(el.value).to.equal(10);\n });\n it('validates on commit', async () => {\n el.focus();\n await sendKeys({ type: '15' });\n await sendKeys({ press: 'Enter' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('10');\n expect(el.valueAsString).to.equal('10');\n expect(el.value).to.equal(10);\n });\n it('disabled `stepUp` button', async () => {\n await clickBySelector(el, '.stepUp');\n expect(el.formattedValue).to.equal('10');\n expect(el.valueAsString).to.equal('10');\n expect(el.value).to.equal(10);\n });\n it('validates late', async () => {\n el.max = 5;\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('5');\n expect(el.valueAsString).to.equal('5');\n expect(el.value).to.equal(5);\n });\n });\n describe('min', () => {\n let el: NumberField;\n let lastInputValue = 0;\n let lastChangeValue = 0;\n beforeEach(async () => {\n el = await getElFrom(\n Default({\n min: 10,\n value: 10,\n onInput: (value: number) => (lastInputValue = value),\n onChange: (value: number) => (lastChangeValue = value),\n })\n );\n expect(el.formattedValue).to.equal('10');\n expect(el.valueAsString).to.equal('10');\n expect(el.value).to.equal(10);\n });\n it('constrains input', async () => {\n el.focus();\n await sendKeys({ press: 'Backspace' });\n await sendKeys({ press: 'Backspace' });\n await sendKeys({ type: '5' });\n await sendKeys({ press: 'Enter' });\n await elementUpdated(el);\n expect(lastInputValue, 'last input value').to.equal(10);\n expect(lastChangeValue, 'last change value').to.equal(10);\n expect(el.formattedValue).to.equal('10');\n expect(el.valueAsString).to.equal('10');\n expect(el.value).to.equal(10);\n });\n xit('manages `inputMode` in iPhone', async () => {\n // setUserAgent is not currently supported by Playwright\n await setUserAgent(\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148'\n );\n el.min = 0;\n await elementUpdated(el);\n expect(el.focusElement.inputMode).to.equal('numeric');\n el.min = -10;\n await elementUpdated(el);\n expect(el.focusElement.inputMode).to.equal('text');\n el.formatOptions = {\n minimumFractionDigits: 1,\n maximumFractionDigits: 2,\n };\n el.min = 0;\n await elementUpdated(el);\n expect(el.focusElement.inputMode).to.equal('decimal');\n });\n xit('manages `inputMode` in Android', async () => {\n // setUserAgent is not currently supported by Playwright\n await setUserAgent(\n 'Mozilla/5.0 (Linux; Android 10; SM-A205U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.210 Mobile Safari/537.36'\n );\n el.min = 0;\n await elementUpdated(el);\n expect(el.focusElement.inputMode).to.equal('numeric');\n el.min = -10;\n await elementUpdated(el);\n expect(el.focusElement.inputMode).to.equal('numeric');\n el.formatOptions = {\n minimumFractionDigits: 1,\n maximumFractionDigits: 2,\n };\n el.min = 0;\n await elementUpdated(el);\n expect(el.focusElement.inputMode).to.equal('decimal');\n });\n it('constrains `value`', async () => {\n el.value = 0;\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('10');\n expect(el.valueAsString).to.equal('10');\n expect(el.value).to.equal(10);\n });\n it('validates on commit', async () => {\n el.focus();\n await sendKeys({ press: '0' });\n await sendKeys({ press: 'Enter' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('100');\n expect(el.valueAsString).to.equal('100');\n expect(el.value).to.equal(100);\n });\n it('disabled `stepDown` button', async () => {\n await clickBySelector(el, '.stepDown');\n expect(el.formattedValue).to.equal('10');\n expect(el.valueAsString).to.equal('10');\n expect(el.value).to.equal(10);\n });\n it('validates late', async () => {\n el.min = 15;\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('15');\n expect(el.valueAsString).to.equal('15');\n expect(el.value).to.equal(15);\n });\n });\n describe('step', () => {\n let el: NumberField;\n beforeEach(async () => {\n el = await getElFrom(Default({ value: 10, step: 5 }));\n expect(el.formattedValue).to.equal('10');\n expect(el.valueAsString).to.equal('10');\n expect(el.value).to.equal(10);\n });\n it('via arrow up', async () => {\n el.focus();\n await elementUpdated(el);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('15');\n expect(el.valueAsString).to.equal('15');\n expect(el.value).to.equal(15);\n });\n it('via arrow down', async () => {\n el.focus();\n await elementUpdated(el);\n await sendKeys({ press: 'ArrowDown' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('5');\n expect(el.valueAsString).to.equal('5');\n expect(el.value).to.equal(5);\n });\n it('step up via pointer', async () => {\n await clickBySelector(el, '.stepUp');\n expect(el.formattedValue).to.equal('15');\n expect(el.valueAsString).to.equal('15');\n expect(el.value).to.equal(15);\n });\n it('step down via pointer', async () => {\n await clickBySelector(el, '.stepDown');\n expect(el.formattedValue).to.equal('5');\n expect(el.valueAsString).to.equal('5');\n expect(el.value).to.equal(5);\n });\n });\n describe('step + constraints', () => {\n let el: NumberField;\n beforeEach(async () => {\n el = await getElFrom(Default({ step: 5 }));\n expect(el.formattedValue).to.equal('');\n expect(el.valueAsString).to.equal('NaN');\n expect(el.value).to.be.NaN;\n });\n it('steps', async () => {\n el.focus();\n await elementUpdated(el);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('0');\n expect(el.valueAsString).to.equal('0');\n expect(el.value).to.equal(0);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('5');\n expect(el.valueAsString).to.equal('5');\n expect(el.value).to.equal(5);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('10');\n expect(el.valueAsString).to.equal('10');\n expect(el.value).to.equal(10);\n });\n it('steps from min', async () => {\n el.min = 5;\n await elementUpdated(el);\n el.focus();\n await elementUpdated(el);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('5');\n expect(el.valueAsString).to.equal('5');\n expect(el.value).to.equal(5);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('10');\n expect(el.valueAsString).to.equal('10');\n expect(el.value).to.equal(10);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('15');\n expect(el.valueAsString).to.equal('15');\n expect(el.value).to.equal(15);\n });\n it('steps from mismatched min', async () => {\n el.min = 2;\n await elementUpdated(el);\n el.focus();\n await elementUpdated(el);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('2');\n expect(el.valueAsString).to.equal('2');\n expect(el.value).to.equal(2);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('7');\n expect(el.valueAsString).to.equal('7');\n expect(el.value).to.equal(7);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('12');\n expect(el.valueAsString).to.equal('12');\n expect(el.value).to.equal(12);\n });\n it('steps to mismatched max', async () => {\n el.min = 2;\n el.max = 10;\n await elementUpdated(el);\n el.focus();\n await elementUpdated(el);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('2');\n expect(el.valueAsString).to.equal('2');\n expect(el.value).to.equal(2);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('7');\n expect(el.valueAsString).to.equal('7');\n expect(el.value).to.equal(7);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('7');\n expect(el.valueAsString).to.equal('7');\n expect(el.value).to.equal(7);\n });\n it('validates max + step', async () => {\n el.value = 2;\n el.min = 2;\n el.max = 10;\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('2');\n expect(el.valueAsString).to.equal('2');\n expect(el.value).to.equal(2);\n el.value = 11;\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('7');\n expect(el.valueAsString).to.equal('7');\n expect(el.value).to.equal(7);\n el.value = 27;\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('7');\n expect(el.valueAsString).to.equal('7');\n expect(el.value).to.equal(7);\n });\n });\n describe('indeterminate', () => {\n let el: NumberField;\n beforeEach(async () => {\n el = await getElFrom(indeterminate(indeterminate.args));\n expect(el.formattedValue).to.equal('100');\n expect(el.valueAsString).to.equal('100');\n expect(el.value).to.equal(100);\n expect(\n (el as unknown as { displayValue: string }).displayValue\n ).to.equal(indeterminatePlaceholder);\n });\n it('remove \"-\" on focus', async () => {\n el.focus();\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('100');\n expect(el.valueAsString).to.equal('100');\n expect(el.value).to.equal(100);\n expect(\n (el as unknown as { displayValue: string }).displayValue\n ).to.equal('');\n el.blur();\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('100');\n expect(el.valueAsString).to.equal('100');\n expect(el.value).to.equal(100);\n expect(\n (el as unknown as { displayValue: string }).displayValue\n ).to.equal(indeterminatePlaceholder);\n });\n it('return to \"-\" after suplied value is removed', async () => {\n el.focus();\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('100');\n expect(el.valueAsString).to.equal('100');\n expect(el.value).to.equal(100);\n expect(\n (el as unknown as { displayValue: string }).displayValue\n ).to.equal('');\n await sendKeys({ type: '50' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('50');\n expect(el.valueAsString).to.equal('50');\n expect(el.value).to.equal(50);\n expect(\n (el as unknown as { displayValue: string }).displayValue\n ).to.equal('50');\n await sendKeys({ press: 'Backspace' });\n await sendKeys({ press: 'Backspace' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('100');\n expect(el.valueAsString).to.equal('100');\n expect(el.value).to.equal(100);\n expect(\n (el as unknown as { displayValue: string }).displayValue\n ).to.equal('');\n el.blur();\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('100');\n expect(el.valueAsString).to.equal('100');\n expect(el.value).to.equal(100);\n expect(\n (el as unknown as { displayValue: string }).displayValue\n ).to.equal(indeterminatePlaceholder);\n });\n it('starts from `value` on \"ArrowUp\" keypresses', async () => {\n el.focus();\n await elementUpdated(el);\n await sendKeys({ press: 'ArrowUp' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('101');\n expect(el.valueAsString).to.equal('101');\n expect(el.value).to.equal(101);\n expect(\n (el as unknown as { displayValue: string }).displayValue\n ).to.equal('101');\n el.blur();\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('101');\n expect(el.valueAsString).to.equal('101');\n expect(el.value).to.equal(101);\n expect(\n (el as unknown as { displayValue: string }).displayValue\n ).to.equal('101');\n });\n it('starts from `value` on click `.stepUp`', async () => {\n el.focus();\n await elementUpdated(el);\n await clickBySelector(el, '.stepUp');\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('101');\n expect(el.valueAsString).to.equal('101');\n expect(el.value).to.equal(101);\n expect(\n (el as unknown as { displayValue: string }).displayValue\n ).to.equal('101');\n el.blur();\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('101');\n expect(el.valueAsString).to.equal('101');\n expect(el.value).to.equal(101);\n expect(\n (el as unknown as { displayValue: string }).displayValue\n ).to.equal('101');\n });\n it('starts from `value` on \"ArrowDown\" keypresses', async () => {\n el.focus();\n await elementUpdated(el);\n await sendKeys({ press: 'ArrowDown' });\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('99');\n expect(el.valueAsString).to.equal('99');\n expect(el.value).to.equal(99);\n expect(\n (el as unknown as { displayValue: string }).displayValue\n ).to.equal('99');\n el.blur();\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('99');\n expect(el.valueAsString).to.equal('99');\n expect(el.value).to.equal(99);\n expect(\n (el as unknown as { displayValue: string }).displayValue\n ).to.equal('99');\n });\n it('starts from `value` on click `.stepDown`', async () => {\n el.focus();\n await elementUpdated(el);\n await clickBySelector(el, '.stepDown');\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('99');\n expect(el.valueAsString).to.equal('99');\n expect(el.value).to.equal(99);\n expect(\n (el as unknown as { displayValue: string }).displayValue\n ).to.equal('99');\n el.blur();\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('99');\n expect(el.valueAsString).to.equal('99');\n expect(el.value).to.equal(99);\n expect(\n (el as unknown as { displayValue: string }).displayValue\n ).to.equal('99');\n });\n });\n it('removes the stepper UI with [hide-stepper]', async () => {\n const el = await getElFrom(Default({ hideStepper: true }));\n const stepUp = el.shadowRoot.querySelector('.stepUp');\n const stepDown = el.shadowRoot.querySelector('.stepDown');\n expect(stepUp).to.be.null;\n expect(stepDown).to.be.null;\n });\n describe('Disabled', () => {\n let el: NumberField;\n beforeEach(async () => {\n el = await getElFrom(Default({ disabled: true, value: 1337 }));\n expect(el.formattedValue).to.equal('1,337');\n expect(el.valueAsString).to.equal('1337');\n expect(el.value).to.equal(1337);\n el.focus();\n await elementUpdated(el);\n });\n afterEach(async () => {\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('1,337');\n expect(el.valueAsString).to.equal('1337');\n expect(el.value).to.equal(1337);\n });\n it('presents as `disabled`', async () => {\n await sendKeys({ type: '12345' });\n await elementUpdated(el);\n await sendKeys({ press: 'Enter' });\n });\n it('prevents increment via keyboard', async () => {\n await sendKeys({ press: 'ArrowUp' });\n });\n it('prevents decrement via keyboard', async () => {\n await sendKeys({ press: 'ArrowDown' });\n });\n it('prevents increment via scroll', async () => {\n el.dispatchEvent(new WheelEvent('wheel', { deltaY: 1 }));\n });\n it('prevents decrement via scroll', async () => {\n el.dispatchEvent(new WheelEvent('wheel', { deltaY: -1 }));\n });\n it('prevents increment via stepper button', async () => {\n await clickBySelector(el, '.stepUp');\n });\n it('prevents decrement via stepper button', async () => {\n await clickBySelector(el, '.stepDown');\n });\n });\n describe('Readonly', () => {\n let el: NumberField;\n beforeEach(async () => {\n el = await getElFrom(Default({ readonly: true, value: 1337 }));\n expect(el.formattedValue).to.equal('1,337');\n expect(el.valueAsString).to.equal('1337');\n expect(el.value).to.equal(1337);\n el.focus();\n await elementUpdated(el);\n });\n afterEach(async () => {\n await elementUpdated(el);\n expect(el.formattedValue).to.equal('1,337');\n expect(el.valueAsString).to.equal('1337');\n expect(el.value).to.equal(1337);\n });\n it('presents as `readonly`', async () => {\n await sendKeys({ type: '12345' });\n await elementUpdated(el);\n await sendKeys({ press: 'Enter' });\n });\n it('prevents increment via keyboard', async () => {\n await sendKeys({ press: 'ArrowUp' });\n });\n it('prevents decrement via keyboard', async () => {\n await sendKeys({ press: 'ArrowDown' });\n });\n it('prevents increment via scroll', async () => {\n el.dispatchEvent(new WheelEvent('wheel', { deltaY: 1 }));\n });\n it('prevents decrement via scroll', async () => {\n el.dispatchEvent(new WheelEvent('wheel', { deltaY: -1 }));\n });\n it('prevents increment via stepper button', async () => {\n await clickBySelector(el, '.stepUp');\n });\n it('prevents decrement via stepper button', async () => {\n await clickBySelector(el, '.stepDown');\n });\n });\n});\n"]}