@spectrum-web-components/number-field 0.3.13 → 0.4.1-devmode.7
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.
- package/package.json +26 -13
- package/sp-number-field.dev.js +3 -0
- package/sp-number-field.dev.js.map +7 -0
- package/sp-number-field.js +3 -14
- package/sp-number-field.js.map +7 -1
- package/src/NumberField.dev.js +499 -0
- package/src/NumberField.dev.js.map +7 -0
- package/src/NumberField.js +452 -504
- package/src/NumberField.js.map +7 -1
- package/src/index.dev.js +2 -0
- package/src/index.dev.js.map +7 -0
- package/src/index.js +2 -13
- package/src/index.js.map +7 -1
- package/src/number-field.css.dev.js +147 -0
- package/src/number-field.css.dev.js.map +7 -0
- package/src/number-field.css.js +6 -15
- package/src/number-field.css.js.map +7 -1
- package/src/spectrum-number-field.css.dev.js +143 -0
- package/src/spectrum-number-field.css.dev.js.map +7 -0
- package/src/spectrum-number-field.css.js +3 -14
- package/src/spectrum-number-field.css.js.map +7 -1
- package/stories/number-field.stories.js +215 -229
- package/stories/number-field.stories.js.map +7 -1
- package/test/benchmark/basic-test.js +5 -16
- package/test/benchmark/basic-test.js.map +7 -1
- package/test/helpers.js +44 -55
- package/test/helpers.js.map +7 -1
- package/test/inputs.test.js +340 -350
- package/test/inputs.test.js.map +7 -1
- package/test/number-field.test-vrt.js +4 -15
- package/test/number-field.test-vrt.js.map +7 -1
- package/test/number-field.test.js +1135 -1135
- package/test/number-field.test.js.map +7 -1
|
@@ -1 +1,7 @@
|
|
|
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"]}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["number-field.test.ts"],
|
|
4
|
+
"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 '@spectrum-web-components/number-field/sp-number-field.js';\nimport {\n FRAMES_PER_CHANGE,\n indeterminatePlaceholder,\n NumberField,\n} from '@spectrum-web-components/number-field';\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\u202F337');\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\u202F377\u202F331');\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\u00A045.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\u00A045.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR\u00A045.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR\u00A045.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR\u00A045.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR\u00A045.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR\u00A045.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR\u00A045.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR\u00A045.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR\u00A045.007\n await sendKeys({ press: 'ArrowLeft' }); // Visible text: EUR\u00A045.007\n await sendKeys({ type: '1' }); // Visible text: 1EUR\u00A045.007\n await sendKeys({ press: 'Enter' }); // Visible text: EUR\u00A0145.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\u00A0234.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"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|