Skip to content

Commit

Permalink
fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
tlgimenes committed Jun 17, 2022
1 parent ec3e377 commit 1355f94
Show file tree
Hide file tree
Showing 5 changed files with 150 additions and 47 deletions.
23 changes: 0 additions & 23 deletions packages/api/test/__snapshots__/queries.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -621,32 +621,10 @@ Object {
Object {
"key": "price",
"label": "Pre�o",
"type": "RANGE",
"values": Array [
Object {
"label": "unknown",
"quantity": 646,
"selected": false,
"value": "0.23-to-150",
},
Object {
"label": "unknown",
"quantity": 601,
"selected": false,
"value": "360-to-995.92",
},
Object {
"label": "unknown",
"quantity": 579,
"selected": false,
"value": "150-to-360",
},
],
},
Object {
"key": "category-2",
"label": "Categoria",
"type": "BOOLEAN",
"values": Array [
Object {
"label": "Chairs",
Expand All @@ -665,7 +643,6 @@ Object {
Object {
"key": "brand",
"label": "Marca",
"type": "BOOLEAN",
"values": Array [
Object {
"label": "Acer",
Expand Down
6 changes: 4 additions & 2 deletions packages/api/test/schema.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@ const TYPES = [
'StoreCollectionMeta',
'StoreCollection',
'StoreFacet',
'StoreFacetValue',
'StoreFacetRange',
'StoreFacetBoolean',
'StoreFacetValueRange',
'StoreFacetValueBoolean',
'StoreImage',
'IStoreImage',
'StoreOffer',
Expand All @@ -38,7 +41,6 @@ const TYPES = [
'StoreCollectionConnection',
'StoreSort',
'IStoreSelectedFacet',
'StoreFacetType',
'StoreSearchResult',
'StoreReviewRating',
'StoreReview',
Expand Down
143 changes: 125 additions & 18 deletions packages/sdk/test/search/Provider.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@ import type { ComponentPropsWithoutRef } from 'react'
import {
formatSearchState,
initSearchState,
removeFacet,
SearchProvider,
setFacet,
toggleFacet,
toggleFacets,
useSearch,
} from '../../src'

Expand Down Expand Up @@ -34,7 +38,12 @@ test('SearchProvider: change sort ordering', async () => {

expect(result.current.state.sort).toBe('score_desc')

act(() => result.current.setSort('name_asc'))
act(() => {
result.current.setState({
...result.current.state,
sort: 'name_asc',
})
})

expect(mock).toBeCalledWith(formatSearchState({ ...state, sort: 'name_asc' }))
})
Expand All @@ -51,10 +60,20 @@ test('SearchProvider: Set full text term', async () => {

expect(result.current.state.term).toBeNull()

act(() => result.current.setTerm(null))
act(() => {
result.current.setState({
...result.current.state,
term: null,
})
})
expect(mock).not.toHaveBeenCalled()

act(() => result.current.setTerm(fullTextTerm))
act(() => {
result.current.setState({
...result.current.state,
term: fullTextTerm,
})
})
expect(mock).toBeCalledWith(
formatSearchState({ ...state, term: fullTextTerm })
)
Expand All @@ -72,7 +91,12 @@ test('SearchProvider: Set current page', async () => {

expect(result.current.state.page).toBe(0)

act(() => result.current.setPage(page))
act(() => {
result.current.setState({
...result.current.state,
page,
})
})
expect(mock).toBeCalledWith(formatSearchState({ ...state, page }))
})

Expand All @@ -92,7 +116,12 @@ test('SearchProvider: selects a simple facet', async () => {

expect(result.current.state.selectedFacets).toHaveLength(0)

act(() => result.current.setFacet(facet1))
act(() => {
result.current.setState({
...result.current.state,
selectedFacets: setFacet(result.current.state.selectedFacets, facet1),
})
})
expect(mock).toBeCalledWith(
formatSearchState({ ...state, selectedFacets: [facet1] })
)
Expand Down Expand Up @@ -120,7 +149,12 @@ test('SearchProvider: selects a simple facet when more facets are inside the sta
),
})

act(() => result.current.setFacet(facet2))
act(() => {
result.current.setState({
...result.current.state,
selectedFacets: setFacet(result.current.state.selectedFacets, facet2),
})
})
expect(mock).toBeCalledWith(
formatSearchState({ ...state, selectedFacets: [facet1, facet2] })
)
Expand Down Expand Up @@ -148,10 +182,24 @@ test('SearchProvider: Facet uniqueness', async () => {
),
})

act(() => result.current.setFacet(facet2, true))
act(() => {
result.current.setState({
...result.current.state,
selectedFacets: setFacet(
result.current.state.selectedFacets,
facet2,
true
),
})
})
expect(mock).not.toHaveBeenCalled()

act(() => result.current.setFacet(facet1))
act(() => {
result.current.setState({
...result.current.state,
selectedFacets: setFacet(result.current.state.selectedFacets, facet1),
})
})
expect(mock).toBeCalledWith(
formatSearchState({ ...state, selectedFacets: [facet2, facet1] })
)
Expand Down Expand Up @@ -179,7 +227,12 @@ test('SearchProvider: Remove facet selection', async () => {
),
})

act(() => result.current.removeFacet(facet2))
act(() => {
result.current.setState({
...result.current.state,
selectedFacets: removeFacet(result.current.state.selectedFacets, facet2),
})
})
expect(mock).toBeCalledWith(
formatSearchState({ ...state, selectedFacets: [facet1, facet2] })
)
Expand Down Expand Up @@ -208,7 +261,12 @@ test('SearchProvider: Remove initial facet', async () => {
})

/** Cannot remove the first facet */
act(() => result.current.removeFacet(facet1))
act(() => {
result.current.setState({
...result.current.state,
selectedFacets: removeFacet(result.current.state.selectedFacets, facet1),
})
})
expect(mock).not.toHaveBeenCalled()
})

Expand Down Expand Up @@ -242,15 +300,30 @@ test('SearchProvider: Toggle Facet', async () => {
expect(result.current.state.selectedFacets).toEqual([facet1, facet2])

/** Cannot remove the first facet */
act(() => result.current.toggleFacet(facet1))
act(() => {
result.current.setState({
...result.current.state,
selectedFacets: toggleFacet(result.current.state.selectedFacets, facet1),
})
})
expect(mock).not.toHaveBeenCalled()

act(() => result.current.toggleFacet(facet2))
act(() => {
result.current.setState({
...result.current.state,
selectedFacets: toggleFacet(result.current.state.selectedFacets, facet2),
})
})
expect(mock).toBeCalledWith(
formatSearchState({ ...state, selectedFacets: [facet1] })
)

act(() => result.current.toggleFacet(facet3))
act(() => {
result.current.setState({
...result.current.state,
selectedFacets: toggleFacet(result.current.state.selectedFacets, facet3),
})
})
expect(mock).toBeCalledWith(
formatSearchState({ ...state, selectedFacets: [facet1, facet2, facet3] })
)
Expand Down Expand Up @@ -283,12 +356,28 @@ test('SearchProvider: Toggle Facets', async () => {
),
})

act(() => result.current.toggleFacets([facet2, facet3]))
act(() => {
result.current.setState({
...result.current.state,
selectedFacets: toggleFacets(result.current.state.selectedFacets, [
facet2,
facet3,
]),
})
})
expect(mock).toBeCalledWith(
formatSearchState({ ...state, selectedFacets: [facet1] })
)

act(() => result.current.toggleFacets([facet1, facet2]))
act(() => {
result.current.setState({
...result.current.state,
selectedFacets: toggleFacets(result.current.state.selectedFacets, [
facet1,
facet2,
]),
})
})
expect(mock).toBeCalledWith(
formatSearchState({ ...state, selectedFacets: [facet1] })
)
Expand Down Expand Up @@ -316,8 +405,26 @@ test('SearchProvider: onChange is called', async () => {

expect(mock).toHaveBeenCalledTimes(0)

act(() => result.current.setSort('name_asc'))
act(() => result.current.setFacet({ key: 'size', value: 'xm' }))
act(() => result.current.setPage(10))
act(() => {
result.current.setState({
...result.current.state,
sort: 'name_asc',
})
})
act(() => {
result.current.setState({
...result.current.state,
selectedFacets: setFacet(result.current.state.selectedFacets, {
key: 'size',
value: 'xm',
}),
})
})
act(() => {
result.current.setState({
...result.current.state,
page: 10,
})
})
expect(mock).toHaveBeenCalledTimes(3)
})
15 changes: 13 additions & 2 deletions packages/ui/src/atoms/Slider/Slider.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,27 @@ import React from 'react'

import Slider from './Slider'

const props = {
min: {
absolute: 0,
selected: 0,
},
max: {
absolute: 100,
selected: 100,
},
}

describe('Slider', () => {
it('`data-store-slider` is present', () => {
const { getByTestId } = render(<Slider min={0} max={100} />)
const { getByTestId } = render(<Slider {...props} />)

expect(getByTestId('store-slider')).toHaveAttribute('data-store-slider')
})

describe('Accessibility', () => {
it('should have no violations', async () => {
const { getByTestId } = render(<Slider min={0} max={100} />)
const { getByTestId } = render(<Slider {...props} />)

expect(await axe(getByTestId('store-slider'))).toHaveNoViolations()
})
Expand Down
10 changes: 8 additions & 2 deletions packages/ui/src/molecules/PriceRange/PriceRange.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,14 @@ function formatter(price: number) {

const props = {
formatter,
min: 0,
max: 100,
min: {
absolute: 0,
selected: 0,
},
max: {
absolute: 100,
selected: 100,
},
ariaLabel: 'My price range',
}

Expand Down

0 comments on commit 1355f94

Please sign in to comment.