diff --git a/packages/core/database/lib/query/helpers/where.js b/packages/core/database/lib/query/helpers/where.js index ceb6782158..6cdfb21cb7 100644 --- a/packages/core/database/lib/query/helpers/where.js +++ b/packages/core/database/lib/query/helpers/where.js @@ -134,7 +134,9 @@ const processWhere = (where, ctx) => { } if (isOperator(key)) { - throw new Error(`Only $and, $or and $not can only be used as root level operators. Found ${key}.`); + throw new Error( + `Only $and, $or and $not can only be used as root level operators. Found ${key}.` + ); } const attribute = meta.attributes[key]; diff --git a/packages/core/helper-plugin/.gitignore b/packages/core/helper-plugin/.gitignore index 618f37eefd..6abcb0d982 100644 --- a/packages/core/helper-plugin/.gitignore +++ b/packages/core/helper-plugin/.gitignore @@ -12,4 +12,5 @@ yarn-error.log .DS_Store npm-debug.log .idea -stats.html \ No newline at end of file +stats.html +coverage \ No newline at end of file diff --git a/packages/core/helper-plugin/lib/src/components/DateTimePicker/DateTimePicker.stories.mdx b/packages/core/helper-plugin/lib/src/components/DateTimePicker/DateTimePicker.stories.mdx index ff14aa8b52..1cdb400c9d 100644 --- a/packages/core/helper-plugin/lib/src/components/DateTimePicker/DateTimePicker.stories.mdx +++ b/packages/core/helper-plugin/lib/src/components/DateTimePicker/DateTimePicker.stories.mdx @@ -4,7 +4,22 @@ import { useState } from 'react'; import { Meta, Story, Canvas } from '@storybook/addon-docs/blocks'; import DateTimePicker from './index'; - + # DateTimePicker @@ -38,7 +53,6 @@ Description... @@ -54,7 +68,7 @@ Description... diff --git a/packages/core/helper-plugin/lib/src/components/DateTimePicker/index.js b/packages/core/helper-plugin/lib/src/components/DateTimePicker/index.js index 619a15f9c7..e52cd57aa8 100644 --- a/packages/core/helper-plugin/lib/src/components/DateTimePicker/index.js +++ b/packages/core/helper-plugin/lib/src/components/DateTimePicker/index.js @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React, { useEffect, useState } from 'react'; import PropTypes from 'prop-types'; import styled from 'styled-components'; import { Stack } from '@strapi/design-system/Stack'; @@ -109,6 +109,21 @@ const DateTimePicker = ({ } }; + useEffect(() => { + if (value) { + const parsedData = parseDate(value); + setDateValue(parsedData); + setTimeValue( + parsedData + ? `${parsedData.getHours()}:${parsedData.getMinutes()}:${parsedData.getSeconds()}` + : null + ); + } else { + setDateValue(undefined); + setTimeValue(undefined); + } + }, [value]); + return ( { expect(datepicker.value).toBe('10/13/2021'); }); + + it('should rerender a new value passed as props', () => { + const { rerender } = render( + + {}} + name="datetimepicker" + label="Date time picker" + hint="This is a super description" + /> + + ); + + rerender( + + {}} + name="datetimepicker" + label="Date time picker" + hint="This is a super description" + /> + + ); + + const datepicker = screen.getByTestId('datetimepicker-date'); + + expect(datepicker.value).toBe('10/4/2021'); + }); + + it('should rerender an empty value if it is passed as props', () => { + const { rerender } = render( + + {}} + name="datetimepicker" + label="Date time picker" + hint="This is a super description" + /> + + ); + + rerender( + + {}} + name="datetimepicker" + label="Date time picker" + hint="This is a super description" + /> + + ); + + const datepicker = screen.getByTestId('datetimepicker-date'); + + expect(datepicker.value).toBe(''); + }); }); diff --git a/packages/core/helper-plugin/package.json b/packages/core/helper-plugin/package.json index 2d5791a6d9..b7d3e79ca8 100644 --- a/packages/core/helper-plugin/package.json +++ b/packages/core/helper-plugin/package.json @@ -35,6 +35,7 @@ "prepublishOnly": "npm run build", "storybook": "start-storybook -p 6006", "test:front": "jest --config ./jest.config.front.js", + "test:front:cov": "jest --config ./jest.config.front.js --coverage --collectCoverageFrom='/packages/core/helper-plugin/lib/src/**/*.js' --coverageDirectory='/packages/core/helper-plugin/coverage'", "test:front:watch": "jest --config ./jest.config.front.js --watchAll", "watch": "yarn create:index && cross-env NODE_ENV=development webpack-cli -w" }, diff --git a/test/config/front/global-setup.js b/test/config/front/global-setup.js index 6e1fbf41d0..c5dcc6c77b 100644 --- a/test/config/front/global-setup.js +++ b/test/config/front/global-setup.js @@ -1,3 +1,4 @@ module.exports = async () => { process.env.TZ = 'UTC'; + process.env.LANG = 'en_US.UTF-8'; };