diff --git a/.github/workflows/jan-electron-linter-and-test.yml b/.github/workflows/jan-electron-linter-and-test.yml
index a151d6497..0cd4fcb9c 100644
--- a/.github/workflows/jan-electron-linter-and-test.yml
+++ b/.github/workflows/jan-electron-linter-and-test.yml
@@ -37,7 +37,6 @@ on:
- '!README.md'
jobs:
-
base_branch_cov:
runs-on: ubuntu-latest
continue-on-error: true
@@ -54,6 +53,7 @@ jobs:
run: |
yarn
yarn build:core
+ yarn build:joi
- name: Run test coverage
run: yarn test:coverage
@@ -364,10 +364,10 @@ jobs:
uses: barecheck/code-coverage-action@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- lcov-file: "./coverage/lcov.info"
- base-lcov-file: "./lcov.info"
+ lcov-file: './coverage/lcov.info'
+ base-lcov-file: './lcov.info'
send-summary-comment: true
- show-annotations: "warning"
+ show-annotations: 'warning'
test-on-ubuntu-pr-target:
runs-on: [self-hosted, Linux, ubuntu-desktop]
diff --git a/web/containers/SliderRightPanel/index.test.tsx b/web/containers/SliderRightPanel/index.test.tsx
index 4274f0fd5..8a0644862 100644
--- a/web/containers/SliderRightPanel/index.test.tsx
+++ b/web/containers/SliderRightPanel/index.test.tsx
@@ -67,26 +67,39 @@ describe('SliderRightPanel', () => {
it('calls onValueChanged with max value when input exceeds max', () => {
defaultProps.onValueChanged = jest.fn()
const { getByRole } = render()
- const input = getByRole('textbox')
+ const input = getByRole('textbox') as HTMLInputElement
fireEvent.change(input, { target: { value: '150' } })
fireEvent.focusOut(input)
expect(defaultProps.onValueChanged).toHaveBeenCalledWith(100)
+ expect(input.value).toEqual('100')
})
it('calls onValueChanged with min value when input is below min', () => {
defaultProps.onValueChanged = jest.fn()
const { getByRole } = render()
- const input = getByRole('textbox')
+ const input = getByRole('textbox') as HTMLInputElement
fireEvent.change(input, { target: { value: '0' } })
fireEvent.focusOut(input)
expect(defaultProps.onValueChanged).toHaveBeenCalledWith(0)
+ expect(input.value).toEqual('0')
+ })
+
+ it('calls onValueChanged when input value is empty string', () => {
+ defaultProps.onValueChanged = jest.fn()
+ const { getByRole } = render()
+ const input = getByRole('textbox') as HTMLInputElement
+ fireEvent.change(input, { target: { value: '' } })
+ fireEvent.focusOut(input)
+ expect(defaultProps.onValueChanged).toHaveBeenCalledWith(0)
+ expect(input.value).toEqual('0')
})
it('does not call onValueChanged when input is invalid', () => {
defaultProps.onValueChanged = jest.fn()
const { getByRole } = render()
- const input = getByRole('textbox')
+ const input = getByRole('textbox') as HTMLInputElement
fireEvent.change(input, { target: { value: 'invalid' } })
expect(defaultProps.onValueChanged).not.toHaveBeenCalledWith(0)
+ expect(input.value).toEqual('50')
})
})
diff --git a/web/containers/SliderRightPanel/index.tsx b/web/containers/SliderRightPanel/index.tsx
index c9f75fdc9..df415ffb5 100644
--- a/web/containers/SliderRightPanel/index.tsx
+++ b/web/containers/SliderRightPanel/index.tsx
@@ -80,7 +80,10 @@ const SliderRightPanel = ({
onValueChanged?.(Number(max))
setVal(max.toString())
setShowTooltip({ max: true, min: false })
- } else if (Number(e.target.value) < Number(min)) {
+ } else if (
+ Number(e.target.value) < Number(min) ||
+ !e.target.value.length
+ ) {
onValueChanged?.(Number(min))
setVal(min.toString())
setShowTooltip({ max: false, min: true })
@@ -92,7 +95,10 @@ const SliderRightPanel = ({
// Which is incorrect
if (Number(e.target.value) > Number(max)) {
setVal(max.toString())
- } else if (Number(e.target.value) < Number(min)) {
+ } else if (
+ Number(e.target.value) < Number(min) ||
+ !e.target.value.length
+ ) {
setVal(min.toString())
} else if (Number.isNaN(Number(e.target.value))) return