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...
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';
};