feat: support i18n for core component

Signed-off-by: rui ma <ruima@alauda.io>
This commit is contained in:
rui ma
2024-01-08 23:55:00 +08:00
parent 94c4fe2782
commit ff7e12632d
37 changed files with 575 additions and 248 deletions
@@ -16,19 +16,18 @@
import React from 'react';
import { VisitList } from './VisitList';
import { render } from '@testing-library/react';
import { BrowserRouter } from 'react-router-dom';
import { renderInTestApp } from '@backstage/test-utils';
describe('<VisitList/>', () => {
it('renders with mandatory parameters', async () => {
const { getByText } = await render(
const { getByText } = await renderInTestApp(
<VisitList title="My title" detailType="time-ago" />,
);
expect(getByText('My title')).toBeInTheDocument();
});
it('renders skeleton when loading is true', async () => {
const { container } = await render(
const { container } = await renderInTestApp(
<VisitList title="My title" detailType="time-ago" loading />,
);
expect(container.querySelectorAll('li')).toHaveLength(8);
@@ -36,7 +35,7 @@ describe('<VisitList/>', () => {
});
it('renders specified amount of items', async () => {
const { container } = await render(
const { container } = await renderInTestApp(
<VisitList
title="My title"
detailType="time-ago"
@@ -49,7 +48,7 @@ describe('<VisitList/>', () => {
});
it('renders some items hidden', async () => {
const { container } = await render(
const { container } = await renderInTestApp(
<VisitList
title="My title"
detailType="time-ago"
@@ -63,7 +62,7 @@ describe('<VisitList/>', () => {
});
it('renders all items when not collapsed', async () => {
const { container } = await render(
const { container } = await renderInTestApp(
<VisitList
title="My title"
detailType="time-ago"
@@ -78,23 +77,20 @@ describe('<VisitList/>', () => {
});
it('renders visit with time-ago', async () => {
const { container, getByText } = await render(
<BrowserRouter>
<VisitList
title="My title"
detailType="time-ago"
visits={[
{
id: 'explore',
name: 'Explore Backstage',
pathname: '/explore',
hits: 35,
timestamp: Date.now() - 86400_000,
},
]}
/>
,
</BrowserRouter>,
const { container, getByText } = await renderInTestApp(
<VisitList
title="My title"
detailType="time-ago"
visits={[
{
id: 'explore',
name: 'Explore Backstage',
pathname: '/explore',
hits: 35,
timestamp: Date.now() - 86400_000,
},
]}
/>,
);
expect(container.querySelectorAll('li')).toHaveLength(1);
expect(getByText('Explore Backstage')).toBeInTheDocument();
@@ -102,23 +98,20 @@ describe('<VisitList/>', () => {
});
it('renders visit with hits', async () => {
const { container, getByText } = await render(
<BrowserRouter>
<VisitList
title="My title"
detailType="hits"
visits={[
{
id: 'explore',
name: 'Explore Backstage',
pathname: '/explore',
hits: 35,
timestamp: Date.now() - 86400_000,
},
]}
/>
,
</BrowserRouter>,
const { container, getByText } = await renderInTestApp(
<VisitList
title="My title"
detailType="hits"
visits={[
{
id: 'explore',
name: 'Explore Backstage',
pathname: '/explore',
hits: 35,
timestamp: Date.now() - 86400_000,
},
]}
/>,
);
expect(container.querySelectorAll('li')).toHaveLength(1);
expect(getByText('Explore Backstage')).toBeInTheDocument();
@@ -126,23 +119,20 @@ describe('<VisitList/>', () => {
});
it('renders text warning about few items', async () => {
const { getByText } = await render(
<BrowserRouter>
<VisitList
title="My title"
detailType="hits"
visits={[
{
id: 'explore',
name: 'Explore Backstage',
pathname: '/explore',
hits: 35,
timestamp: Date.now() - 86400_000,
},
]}
/>
,
</BrowserRouter>,
const { getByText } = await renderInTestApp(
<VisitList
title="My title"
detailType="hits"
visits={[
{
id: 'explore',
name: 'Explore Backstage',
pathname: '/explore',
hits: 35,
timestamp: Date.now() - 86400_000,
},
]}
/>,
);
expect(
getByText('The more pages you visit, the more pages will appear here.'),
@@ -150,10 +140,8 @@ describe('<VisitList/>', () => {
});
it('renders text warning about no items', async () => {
const { getByText } = await render(
<BrowserRouter>
<VisitList title="My title" detailType="hits" visits={[]} />,
</BrowserRouter>,
const { getByText } = await renderInTestApp(
<VisitList title="My title" detailType="hits" visits={[]} />,
);
expect(getByText('There are no visits to show yet.')).toBeInTheDocument();
});