Compare commits

...
Author SHA1 Message Date
github-actions[bot]andgithub-actions[bot] a882a8a389 Version Packages (#2807)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-20 13:26:51 +01:00
Ken d1606d358a 🐛 useDatepicker håndterer isInvalid validation riktig (#2809)
* 🐛 useDatepicker håndterer isInvalid validation riktig nå

* Update @navikt/core/react/src/date/hooks/useDatepicker.tsx

* Update @navikt/core/react/src/date/hooks/useDatepicker.tsx
2024-03-20 13:21:05 +01:00
Ken bb87837632 🧪 Bump timeout and retry of dateStr testing 2024-03-20 12:33:56 +01:00
Halvor Haugan 9c8b2301ed FileUpload.Dropzone: Fiks feil med duplisert id (#2805) 2024-03-20 12:31:08 +01:00
Ken 54ba483d2d ✅ Oppdatert Chromatic-tester
✅ Oppdatert dropdown-tester

🐛 satt dropdown-story til open

✅ Oppdatert errorsummary-tester

✅ Oppdatert fieldset-tester
2024-03-20 11:51:46 +01:00
25 changed files with 371 additions and 190 deletions

No files matched your search

+2
View File
@@ -1,5 +1,7 @@
# @navikt/aksel-icons
## 6.3.3
## 6.3.2
## 6.3.1
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@navikt/aksel-icons",
"version": "6.3.2",
"version": "6.3.3",
"author": "Aksel | NAV",
"homepage": "https://aksel.nav.no/ikoner",
"repository": {
+2
View File
@@ -1,5 +1,7 @@
# @navikt/aksel-stylelint
## 6.3.3
## 6.3.2
## 6.3.1
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@navikt/aksel-stylelint",
"version": "6.3.2",
"version": "6.3.3",
"author": "Aksel | NAV",
"homepage": "https://aksel.nav.no/grunnleggende/kode/stylelint",
"repository": {
@@ -35,8 +35,8 @@
"dev": "yarn watch:lint"
},
"devDependencies": {
"@navikt/ds-css": "^6.3.2",
"@navikt/ds-tokens": "^6.3.2",
"@navikt/ds-css": "^6.3.3",
"@navikt/ds-tokens": "^6.3.3",
"concurrently": "7.2.1",
"postcss-selector-parser": "^6.0.13",
"postcss-value-parser": "^4.2.0",
+7
View File
@@ -1,5 +1,12 @@
# @navikt/aksel
## 6.3.3
### Patch Changes
- Updated dependencies []:
- @navikt/ds-css@6.3.3
## 6.3.2
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@navikt/aksel",
"version": "6.3.2",
"version": "6.3.3",
"description": "Aksel command line interface. Handles css-imports, codemods and more",
"author": "Aksel | NAV designsystem team",
"license": "MIT",
@@ -29,7 +29,7 @@
},
"homepage": "https://aksel.nav.no/grunnleggende/kode/kommandolinje",
"dependencies": {
"@navikt/ds-css": "6.3.2",
"@navikt/ds-css": "6.3.3",
"axios": "1.6.0",
"chalk": "4.1.0",
"clipboardy": "^2.3.0",
+2
View File
@@ -1,5 +1,7 @@
# @navikt/ds-css
## 6.3.3
## 6.3.2
## 6.3.1
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@navikt/ds-css",
"version": "6.3.2",
"version": "6.3.3",
"description": "CSS for NAV Designsystem",
"author": "Aksel | NAV designsystem team",
"keywords": [
@@ -27,7 +27,7 @@
"css:get-version": "node config/get-version.js"
},
"devDependencies": {
"@navikt/ds-tokens": "^6.3.2",
"@navikt/ds-tokens": "^6.3.3",
"cssnano": "6.0.0",
"fast-glob": "3.2.11",
"lodash": "4.17.21",
+12
View File
@@ -1,5 +1,17 @@
# @navikt/ds-react
## 6.3.3
### Patch Changes
- FileUpload.Dropzone: Fiks feil med duplisert id ([#2805](https://github.com/navikt/aksel/pull/2805))
- useDatePicker: `isInvalid`-key i onValidate var hadde flipper boolean i noen tilfeller ([#2809](https://github.com/navikt/aksel/pull/2809))
- Updated dependencies []:
- @navikt/ds-tokens@6.3.3
- @navikt/aksel-icons@6.3.3
## 6.3.2
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@navikt/ds-react",
"version": "6.3.2",
"version": "6.3.3",
"description": "React components from the Norwegian Labour and Welfare Administration.",
"author": "Aksel, a team part of the Norwegian Labour and Welfare Administration.",
"license": "MIT",
@@ -562,8 +562,8 @@
},
"dependencies": {
"@floating-ui/react": "0.25.4",
"@navikt/aksel-icons": "^6.3.2",
"@navikt/ds-tokens": "^6.3.2",
"@navikt/aksel-icons": "^6.3.3",
"@navikt/ds-tokens": "^6.3.3",
"@radix-ui/react-tabs": "1.0.0",
"@radix-ui/react-toggle-group": "1.0.0",
"clsx": "^2.1.0",
@@ -160,6 +160,7 @@ export const UseDatepicker = () => {
fromDate: new Date("Aug 23 2019"),
toDate: new Date("Feb 23 2024"),
onDateChange: console.log,
onValidate: console.log,
});
return (
@@ -272,7 +272,7 @@ export const useDatepicker = (
) {
updateDate(undefined);
updateValidation({
isInvalid: isValidDate(day),
isInvalid: !isValidDate(day),
isWeekend: disableWeekends && isWeekend(day),
isDisabled: disabled && isMatch(day, disabled),
isValidDate: false,
@@ -1,4 +1,4 @@
import { Meta } from "@storybook/react";
import { Meta, StoryObj } from "@storybook/react";
import React, { useState } from "react";
import { Button } from "../button";
import Dropdown from "./Dropdown";
@@ -6,10 +6,15 @@ import Dropdown from "./Dropdown";
export default {
title: "ds-react/Dropdown",
component: Dropdown,
} as Meta;
parameters: {
chromatic: { disable: true },
},
} satisfies Meta<typeof Dropdown>;
export const Default = () => {
return (
type Story = StoryObj<typeof Dropdown>;
export const Default: Story = {
render: () => (
<Dropdown onSelect={(event) => console.log(event)}>
<Dropdown.Toggle>Toggle</Dropdown.Toggle>
<Dropdown.Menu strategy="fixed">
@@ -33,10 +38,10 @@ export const Default = () => {
</Dropdown.Menu.List>
</Dropdown.Menu>
</Dropdown>
);
),
};
export const DefaultOpen = {
export const DefaultOpen: Story = {
render: () => (
<Dropdown onSelect={(event) => console.log(event)} defaultOpen>
<Button as={Dropdown.Toggle}>Toggle</Button>
@@ -57,20 +62,41 @@ export const DefaultOpen = {
</Dropdown.Menu>
</Dropdown>
),
args: { chromatic: { delay: 300 } },
};
export const ControlledOpen = () => {
const [openState, setOpenState] = useState(true);
return (
<Dropdown onSelect={(event) => console.log(event)} open={openState}>
<Button as={Dropdown.Toggle} onClick={() => setOpenState(!openState)}>
Toggle
</Button>
<Dropdown.Menu
strategy="fixed"
onClose={() => console.log("ONCLOSE CONTROLLED")}
>
export const ControlledOpen: Story = {
render: () => {
const [openState, setOpenState] = useState(true);
return (
<Dropdown onSelect={(event) => console.log(event)} open={openState}>
<Button as={Dropdown.Toggle} onClick={() => setOpenState(!openState)}>
Toggle
</Button>
<Dropdown.Menu
strategy="fixed"
onClose={() => console.log("ONCLOSE CONTROLLED")}
>
<Dropdown.Menu.GroupedList>
<Dropdown.Menu.GroupedList.Heading>
Systemer og oppslagsverk
</Dropdown.Menu.GroupedList.Heading>
<Dropdown.Menu.GroupedList.Item
onClick={() => console.log("GroupedList.Item-click")}
>
Gosys
</Dropdown.Menu.GroupedList.Item>
</Dropdown.Menu.GroupedList>
</Dropdown.Menu>
</Dropdown>
);
},
};
export const Chromatic: Story = {
render: () => (
<Dropdown onSelect={(event) => console.log(event)} open>
<Dropdown.Toggle>Toggle</Dropdown.Toggle>
<Dropdown.Menu strategy="fixed">
<Dropdown.Menu.GroupedList>
<Dropdown.Menu.GroupedList.Heading>
Systemer og oppslagsverk
@@ -81,8 +107,18 @@ export const ControlledOpen = () => {
Gosys
</Dropdown.Menu.GroupedList.Item>
</Dropdown.Menu.GroupedList>
<Dropdown.Menu.Divider />
<Dropdown.Menu.List>
<Dropdown.Menu.List.Item onClick={() => console.log("Item-click")}>
Gosys
</Dropdown.Menu.List.Item>
<Dropdown.Menu.List.Item>Psys</Dropdown.Menu.List.Item>
<Dropdown.Menu.List.Item disabled>Infotrygd</Dropdown.Menu.List.Item>
</Dropdown.Menu.List>
</Dropdown.Menu>
</Dropdown>
);
),
parameters: {
chromatic: { disable: false, delay: 300 },
},
};
ControlledOpen.args = { chromatic: { delay: 300 } };
@@ -1,5 +1,6 @@
import { Meta } from "@storybook/react";
import { Meta, StoryObj } from "@storybook/react";
import React from "react";
import { VStack } from "../../layout/stack";
import { ErrorSummary } from "./ErrorSummary";
export default {
@@ -18,9 +19,14 @@ export default {
},
},
},
} as Meta;
parameters: {
chromatic: { disable: true },
},
} satisfies Meta<typeof ErrorSummary>;
export const Default = {
type Story = StoryObj<typeof ErrorSummary>;
export const Default: Story = {
render: (props) => (
<ErrorSummary
heading="Feiloppsummering komponent"
@@ -35,11 +41,41 @@ export const Default = {
),
};
export const Small = () => (
<ErrorSummary heading="Feiloppsummering komponent" size="small">
<ErrorSummary.Item href="#1">Checkbox må fylles ut</ErrorSummary.Item>
<ErrorSummary.Item href="#2">
Tekstfeltet må ha en godkjent e-mail
</ErrorSummary.Item>
</ErrorSummary>
);
export const Small: Story = {
render: () => (
<ErrorSummary heading="Feiloppsummering komponent" size="small">
<ErrorSummary.Item href="#1">Checkbox må fylles ut</ErrorSummary.Item>
<ErrorSummary.Item href="#2">
Tekstfeltet må ha en godkjent e-mail
</ErrorSummary.Item>
</ErrorSummary>
),
};
export const Chromatic: Story = {
render: () => (
<VStack gap="4">
<div>
<h2>Default</h2>
<ErrorSummary heading="Feiloppsummering komponent">
<ErrorSummary.Item href="#1">Checkbox må fylles ut</ErrorSummary.Item>
<ErrorSummary.Item href="#2">
Tekstfeltet må ha en godkjent e-mail
</ErrorSummary.Item>
</ErrorSummary>
</div>
<div>
<h2>Small</h2>
<ErrorSummary heading="Feiloppsummering komponent" size="small">
<ErrorSummary.Item href="#1">Checkbox må fylles ut</ErrorSummary.Item>
<ErrorSummary.Item href="#2">
Tekstfeltet må ha en godkjent e-mail
</ErrorSummary.Item>
</ErrorSummary>
</div>
</VStack>
),
parameters: {
chromatic: { disable: false },
},
};
@@ -1,5 +1,6 @@
import { Meta } from "@storybook/react";
import { Meta, StoryObj } from "@storybook/react";
import React from "react";
import { VStack } from "../../layout/stack";
import TextField from "../textfield/TextField";
import { Fieldset } from "./index";
@@ -26,7 +27,12 @@ export default {
type: "boolean",
},
},
} as Meta;
parameters: {
chromatic: { disable: true },
},
} satisfies Meta<typeof Fieldset>;
type Story = StoryObj<typeof Fieldset>;
const content = (
<>
@@ -35,88 +41,117 @@ const content = (
</>
);
export const Default = {
render: (props) => {
return (
<Fieldset legend="Mollit eiusmod" {...props}>
{content}
</Fieldset>
);
},
const contentWithError = (
<>
<TextField label="Textfield label" hideLabel error="Må være fylt ut" />
<TextField label="Textfield label" hideLabel />
</>
);
export const Default: Story = {
args: {
legend: "Mollit eiusmod",
description:
"Do ullamco amet mollit labore tempor minim cupidatat dolore voluptate velit irure.",
errorPropagation: true,
children: content,
},
};
export const Small = () => (
<Fieldset
size="small"
legend="Mollit eiusmod"
description="Do ullamco amet mollit labore tempor minim cupidatat dolore voluptate velit irure."
>
{content}
</Fieldset>
);
export const Small: Story = {
args: {
legend: "Mollit eiusmod",
description:
"Do ullamco amet mollit labore tempor minim cupidatat dolore voluptate velit irure.",
errorPropagation: true,
children: content,
size: "small",
},
};
export const Description = () => (
<Fieldset
legend="Mollit eiusmod"
description="Esse cupidatat reprehenderit est culpa consectetur sit dolor esse."
>
<TextField
label="Textfield label"
description="Amet quis cillum incididunt "
/>
<TextField
label="Textfield label"
description="Enim et occaecat voluptate labore sit do exercitation laborum non "
/>
</Fieldset>
);
export const ErrorPropagation: Story = {
args: {
legend: "Mollit eiusmod",
description:
"Do ullamco amet mollit labore tempor minim cupidatat dolore voluptate velit irure.",
errorPropagation: false,
children: contentWithError,
},
};
export const ErrorPropagation = () => (
<Fieldset
legend="Mollit eiusmod"
error="Fieldsett error"
errorPropagation={false}
>
<TextField label="Textfield label" hideLabel error="Må være fylt ut" />
<TextField label="Textfield label" hideLabel />
</Fieldset>
);
export const Error: Story = {
args: {
legend: "Mollit eiusmod",
description:
"Do ullamco amet mollit labore tempor minim cupidatat dolore voluptate velit irure.",
children: content,
error: "Laborum officia nisi aliqua esse minim in amet.",
},
};
export const Error = () => (
<div className="colgap">
<Fieldset
legend="Mollit eiusmod"
error="Laborum officia nisi aliqua esse minim in amet."
>
{content}
</Fieldset>
<Fieldset
size="small"
legend="Mollit eiusmod"
error="Laborum officia nisi aliqua esse minim in amet."
>
{content}
</Fieldset>
</div>
);
export const Disabled: Story = {
args: {
legend: "Mollit eiusmod",
description:
"Do ullamco amet mollit labore tempor minim cupidatat dolore voluptate velit irure.",
children: content,
disabled: true,
},
};
export const Disabled = () => (
<div className="colgap">
<Fieldset legend="Mollit eiusmod" disabled>
{content}
</Fieldset>
<Fieldset size="small" legend="Mollit eiusmod" disabled>
{content}
</Fieldset>
</div>
);
export const HideLegend: Story = {
args: {
legend: "Mollit eiusmod",
description:
"Do ullamco amet mollit labore tempor minim cupidatat dolore voluptate velit irure.",
children: content,
hideLegend: true,
},
};
export const HideLegend = () => (
<Fieldset legend="Mollit eiusmod" hideLegend>
{content}
</Fieldset>
);
export const Chromatic: Story = {
render: () => {
return (
<VStack gap="4">
<div>
<h2>Default</h2>
{/* @ts-expect-error Args are Partial here */}
<Fieldset {...Default.args} />
</div>
<div>
<h2>Small</h2>
{/* @ts-expect-error Args are Partial here */}
<Fieldset {...Small.args} />
</div>
<div>
<h2>ErrorPropagation</h2>
{/* @ts-expect-error Args are Partial here */}
<Fieldset {...ErrorPropagation.args} />
</div>
<div>
<h2>Error</h2>
{/* @ts-expect-error Args are Partial here */}
<Fieldset {...Error.args} />
</div>
<div>
<h2>Error small</h2>
{/* @ts-expect-error Args are Partial here */}
<Fieldset {...Error.args} size="small" />
</div>
<div>
<h2>Disabled</h2>
{/* @ts-expect-error Args are Partial here */}
<Fieldset {...Disabled.args} />
</div>
<div>
<h2>HideLegend</h2>
{/* @ts-expect-error Args are Partial here */}
<Fieldset {...HideLegend.args} />
</div>
</VStack>
);
},
parameters: {
chromatic: { disable: false },
},
};
@@ -129,7 +129,7 @@ const Dropzone = forwardRef<HTMLInputElement, FileUploadDropzoneProps>(
<BodyShort as="div">{translate("dropzone.or")}</BodyShort>
</div>
<Button
{...omit(rest, ["errorId"])}
{...omit(rest, ["errorId", "id"])}
{...inputPropsRest}
aria-describedby={cl(labelId, ariaDescribedby)}
className="navds-dropzone__area-button"
@@ -49,6 +49,7 @@ export const Default = (props) => {
</RadioGroup>
);
};
Default.args = {
controlled: false,
error: false,
@@ -1,5 +1,6 @@
import { Meta } from "@storybook/react";
import { Meta, StoryObj } from "@storybook/react";
import React from "react";
import { VStack } from "../../layout/stack";
import Switch from "./Switch";
export default {
@@ -31,70 +32,59 @@ export default {
type: "boolean",
},
},
} as Meta;
export const Default = {
render: (props) => {
return <Switch {...props}>Label text</Switch>;
parameters: {
chromatic: { disable: true },
},
} satisfies Meta<typeof Switch>;
type Story = StoryObj<typeof Switch>;
export const Default: Story = {
args: {
position: "right",
children: "Label text",
},
};
export const Small = () => {
return (
<div className="colgap">
<Switch size="small">Label text</Switch>
<Switch size="small" position="right">
Label text
</Switch>
</div>
);
export const Small: Story = {
args: {
children: "Label text",
size: "small",
},
};
export const Description = () => {
return (
<div className="colgap">
<Switch size="small" description="Cillum sint exercitation ut cillum.">
Label text
</Switch>
<Switch
size="small"
position="right"
description="Cillum sint exercitation ut cillum."
>
Label text
</Switch>
</div>
);
export const Description: Story = {
args: {
children: "Label text",
description: "Cillum sint exercitation ut cillum.",
},
};
export const Loading = () => {
return (
<div className="colgap">
export const Loading: Story = {
render: () => {
return (
<div className="colgap">
<Switch loading>Label text</Switch>
<div className="colgap">
<Switch loading>Label text</Switch>
<Switch checked loading>
Label text
</Switch>
<Switch checked loading>
Label text
</Switch>
</div>
<div className="colgap">
<Switch loading size="small">
Label text
</Switch>
<Switch checked loading size="small">
Label text
</Switch>
</div>
</div>
<div className="colgap">
<Switch loading size="small">
Label text
</Switch>
<Switch checked loading size="small">
Label text
</Switch>
</div>
</div>
);
);
},
};
export const Disabled = () => {
return (
export const Disabled: Story = {
render: () => (
<div className="colgap">
<Switch disabled>Label text</Switch>
@@ -102,11 +92,11 @@ export const Disabled = () => {
Label text
</Switch>
</div>
);
),
};
export const HideLabel = () => {
return (
export const HideLabel: Story = {
render: () => (
<div className="colgap">
<Switch hideLabel>Label text</Switch>
@@ -114,11 +104,11 @@ export const HideLabel = () => {
Label text
</Switch>
</div>
);
),
};
export const Readonly = () => {
return (
export const Readonly: Story = {
render: () => (
<div className="colgap">
<Switch description="Slår av alle notifikasjoner" readOnly>
Notifikasjoner
@@ -128,5 +118,54 @@ export const Readonly = () => {
Notifikasjoner
</Switch>
</div>
);
),
};
export const Chromatic: Story = {
render: () => (
<VStack gap="4" align="start">
<div>
<h2>Default</h2>
{/* @ts-expect-error Args are Partial here */}
<Switch {...Default.args} />
</div>
<div>
<h2>Small</h2>
{/* @ts-expect-error Args are Partial here */}
<Switch {...Small.args} position="left" />
{/* @ts-expect-error Args are Partial here */}
<Switch {...Small.args} position="right" />
</div>
<div>
<h2>Description</h2>
{/* @ts-expect-error Args are Partial here */}
<Switch {...Description.args} position="left" />
{/* @ts-expect-error Args are Partial here */}
<Switch {...Description.args} position="right" />
</div>
<div>
<h2>Loading</h2>
{/* @ts-expect-error Args are Partial here */}
<Loading.render />
</div>
<div>
<h2>Disabled</h2>
{/* @ts-expect-error Args are Partial here */}
<Disabled.render />
</div>
<div>
<h2>HideLabel</h2>
{/* @ts-expect-error Args are Partial here */}
<HideLabel.render />
</div>
<div>
<h2>Readonly</h2>
{/* @ts-expect-error Args are Partial here */}
<Readonly.render />
</div>
</VStack>
),
parameters: {
chromatic: { disable: false },
},
};
+2
View File
@@ -1,5 +1,7 @@
# @navikt/ds-tailwind
## 6.3.3
## 6.3.2
## 6.3.1
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@navikt/ds-tailwind",
"version": "6.3.2",
"version": "6.3.3",
"description": "Tailwind config based on @navikt/ds-tokens",
"author": "Aksel | NAV designsystem team",
"keywords": [
@@ -25,7 +25,7 @@
"directory": "@navikt/core/tailwind"
},
"devDependencies": {
"@navikt/ds-tokens": "^6.3.2",
"@navikt/ds-tokens": "^6.3.3",
"color": "4.2.3",
"lodash": "^4.17.21",
"tailwindcss": "^3.3.3",
+2
View File
@@ -1,5 +1,7 @@
# @navikt/ds-tokens
## 6.3.3
## 6.3.2
## 6.3.1
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@navikt/ds-tokens",
"version": "6.3.2",
"version": "6.3.3",
"description": "Design-tokens for NAV designsystem",
"author": "Aksel | NAV designsystem team",
"keywords": [
+8 -4
View File
@@ -8,13 +8,17 @@
### @navikt/ds-react
- FileUpload: Fiks feil ved import av json ([#2803](https://github.com/navikt/aksel/pull/2803))
- FileUpload.Dropzone: Fiks feil med duplisert id ([#2805](https://github.com/navikt/aksel/pull/2805))
* FileUpload: Disabled dropzone stopper opplasting ([#2798](https://github.com/navikt/aksel/pull/2798))
- useDatePicker: `isInvalid`-key i onValidate var hadde flipper boolean i noen tilfeller ([#2809](https://github.com/navikt/aksel/pull/2809))
- Allow Combobox options as objects to support separate display text and value ([#2716](https://github.com/navikt/aksel/pull/2716))
* FileUpload: Fiks feil ved import av json ([#2803](https://github.com/navikt/aksel/pull/2803))
- FileUpload: Ny komponent `FileUpload` for å håndtere opplasting av filer, Dropzone og fil-visning ([#2504](https://github.com/navikt/aksel/pull/2504))
- FileUpload: Disabled dropzone stopper opplasting ([#2798](https://github.com/navikt/aksel/pull/2798))
* Allow Combobox options as objects to support separate display text and value ([#2716](https://github.com/navikt/aksel/pull/2716))
* FileUpload: Ny komponent `FileUpload` for å håndtere opplasting av filer, Dropzone og fil-visning ([#2504](https://github.com/navikt/aksel/pull/2504))
## 6.2
+5 -5
View File
@@ -15,10 +15,10 @@
"playroom"
],
"dependencies": {
"@navikt/aksel-icons": "^6.3.2",
"@navikt/ds-css": "^6.3.2",
"@navikt/ds-react": "^6.3.2",
"@navikt/ds-tailwind": "^6.3.2",
"@navikt/ds-tokens": "^6.3.2"
"@navikt/aksel-icons": "^6.3.3",
"@navikt/ds-css": "^6.3.3",
"@navikt/ds-react": "^6.3.3",
"@navikt/ds-tailwind": "^6.3.3",
"@navikt/ds-tokens": "^6.3.3"
}
}
@@ -22,7 +22,7 @@ describe("Utils test", () => {
expect(capitalize(str4)).toEqual("Teststr");
});
test("dateStr", async () => {
test("dateStr", { retry: 10, timeout: 8000 }, async () => {
const date = "2022-06-09T11:05:48Z";
const date2 = "2021-03-02T12:05:48Z";