From 262645f75a56c3bedde102bd97f8f1cd80dfe70f Mon Sep 17 00:00:00 2001 From: Caleb Roseland Date: Mon, 3 Apr 2023 11:43:49 -0500 Subject: [PATCH 1/5] fix: empty number is valid --- webapp/boards/src/properties/number/number.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/boards/src/properties/number/number.tsx b/webapp/boards/src/properties/number/number.tsx index cfcf50bcf1..4dc175009d 100644 --- a/webapp/boards/src/properties/number/number.tsx +++ b/webapp/boards/src/properties/number/number.tsx @@ -10,7 +10,7 @@ const Number = (props: PropertyProps): JSX.Element => { return ( !isNaN(parseInt(props.propertyValue as string, 10))} + validator={() => props.propertyValue === '' || !isNaN(parseInt(props.propertyValue as string, 10))} /> ) } From bccb35a11dfe05e53e493cf31573856cd1566e26 Mon Sep 17 00:00:00 2001 From: Caleb Roseland Date: Mon, 3 Apr 2023 12:38:10 -0500 Subject: [PATCH 2/5] test: number property empty and change event --- .../number/__snapshots__/number.test.tsx.snap | 13 ++++ .../src/properties/number/number.test.tsx | 74 +++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 webapp/boards/src/properties/number/__snapshots__/number.test.tsx.snap create mode 100644 webapp/boards/src/properties/number/number.test.tsx diff --git a/webapp/boards/src/properties/number/__snapshots__/number.test.tsx.snap b/webapp/boards/src/properties/number/__snapshots__/number.test.tsx.snap new file mode 100644 index 0000000000..0bef96e78e --- /dev/null +++ b/webapp/boards/src/properties/number/__snapshots__/number.test.tsx.snap @@ -0,0 +1,13 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`properties/link should match snapshot for number with empty value 1`] = ` +
+ +
+`; diff --git a/webapp/boards/src/properties/number/number.test.tsx b/webapp/boards/src/properties/number/number.test.tsx new file mode 100644 index 0000000000..bb4dac9612 --- /dev/null +++ b/webapp/boards/src/properties/number/number.test.tsx @@ -0,0 +1,74 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +import React, {ComponentProps} from 'react' +import {screen} from '@testing-library/react' +import {mocked} from 'jest-mock' + +import {setup, wrapIntl} from 'src/testUtils' +import {TestBlockFactory} from 'src/test/testBlockFactory' +import mutator from 'src/mutator' + +import {Board, IPropertyTemplate} from 'src/blocks/board' +import {Card} from 'src/blocks/card' + +import NumberProperty from './property' +import NumberEditor from './number' + +jest.mock('src/components/flashMessages') +jest.mock('src/mutator') + +const mockedMutator = mocked(mutator) + +describe('properties/link', () => { + + let board: Board + let card: Card + let propertyTemplate: IPropertyTemplate + let baseProps: ComponentProps + + beforeEach(() => { + + board = TestBlockFactory.createBoard() + card = TestBlockFactory.createCard() + propertyTemplate = board.cardProperties[0] + + baseProps = { + property: new NumberProperty(), + card, + board, + propertyTemplate, + propertyValue: '', + readOnly: false, + showEmptyPlaceholder: false, + } + }) + + + + it('should match snapshot for number with empty value', () => { + const {container} = setup( + wrapIntl(( + + )) + ) + expect(container).toMatchSnapshot() + }) + + it('should fire change event when valid number value is entered', async () => { + const {user} = setup( + wrapIntl( + + ) + ) + const value = '42' + const input = screen.getByRole('textbox') + await user.type(input, `${value}{Enter}`) + + expect(mockedMutator.changePropertyValue).toHaveBeenCalledWith(board.id, card, propertyTemplate.id, `${value}`) + }) +}) From f2faa4cb5d75fe6d6e3d542a65cc793122b75434 Mon Sep 17 00:00:00 2001 From: Caleb Roseland Date: Tue, 4 Apr 2023 09:55:31 -0500 Subject: [PATCH 3/5] correct test name --- webapp/boards/src/properties/number/number.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/boards/src/properties/number/number.test.tsx b/webapp/boards/src/properties/number/number.test.tsx index bb4dac9612..491a722c30 100644 --- a/webapp/boards/src/properties/number/number.test.tsx +++ b/webapp/boards/src/properties/number/number.test.tsx @@ -20,7 +20,7 @@ jest.mock('src/mutator') const mockedMutator = mocked(mutator) -describe('properties/link', () => { +describe('properties/number', () => { let board: Board let card: Card From a18573dfaab387de4ec138a90d64f11d5e5014ef Mon Sep 17 00:00:00 2001 From: Caleb Roseland Date: Tue, 4 Apr 2023 09:56:19 -0500 Subject: [PATCH 4/5] correct test whitespaces --- webapp/boards/src/properties/number/number.test.tsx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/webapp/boards/src/properties/number/number.test.tsx b/webapp/boards/src/properties/number/number.test.tsx index 491a722c30..789439c73a 100644 --- a/webapp/boards/src/properties/number/number.test.tsx +++ b/webapp/boards/src/properties/number/number.test.tsx @@ -21,14 +21,12 @@ jest.mock('src/mutator') const mockedMutator = mocked(mutator) describe('properties/number', () => { - let board: Board let card: Card let propertyTemplate: IPropertyTemplate let baseProps: ComponentProps beforeEach(() => { - board = TestBlockFactory.createBoard() card = TestBlockFactory.createCard() propertyTemplate = board.cardProperties[0] @@ -43,8 +41,6 @@ describe('properties/number', () => { showEmptyPlaceholder: false, } }) - - it('should match snapshot for number with empty value', () => { const {container} = setup( From cb85672bb5f56d1cbcef419efa932b7ab7a9aedb Mon Sep 17 00:00:00 2001 From: Caleb Roseland Date: Tue, 4 Apr 2023 12:16:55 -0500 Subject: [PATCH 5/5] update snapshot --- .../src/properties/number/__snapshots__/number.test.tsx.snap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/boards/src/properties/number/__snapshots__/number.test.tsx.snap b/webapp/boards/src/properties/number/__snapshots__/number.test.tsx.snap index 0bef96e78e..8e914cd2c6 100644 --- a/webapp/boards/src/properties/number/__snapshots__/number.test.tsx.snap +++ b/webapp/boards/src/properties/number/__snapshots__/number.test.tsx.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`properties/link should match snapshot for number with empty value 1`] = ` +exports[`properties/number should match snapshot for number with empty value 1`] = `