name,
login,
type,
- projectKey
+ projectKey,
+ expirationDate
}: {
name: string;
login?: string;
type: TokenType;
projectKey: string;
+ expirationDate?: string;
}) => {
const token = {
name,
token: Math.random()
.toString(RANDOM_RADIX)
.slice(RANDOM_PREFIX),
- createdAt: '2022-04-04T04:04:04+0000'
+ createdAt: '2022-04-04T04:04:04+0000',
+ expirationDate
};
this.tokens.push(token);
import { screen, waitFor, within } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { UserEvent } from '@testing-library/user-event/dist/types/setup';
+import { format } from 'date-fns';
import selectEvent from 'react-select-event';
import { getMyProjects, getScannableProjects } from '../../../api/components';
import NotificationsMock from '../../../api/mocks/NotificationsMock';
type: TokenType.User,
expirationDate: expectedTime
});
+
+ // ensure the list of tokens is updated
+ const rows = await screen.findAllByRole('row');
+ expect(rows).toHaveLength(4);
+ expect(rows.pop()).toHaveTextContent(
+ `${newTokenName}users.tokens.USER_TOKEN.shortneverApril 4, 2022${
+ expectedTime ? format(expectedTime, 'MMMM D, YYYY') : '–'
+ }users.tokens.revoke`
+ );
}
);
if (this.mounted) {
this.setState(state => {
- const tokens = [
+ const tokens: UserToken[] = [
...state.tokens,
{
name: newToken.name,
createdAt: newToken.createdAt,
isExpired: false,
+ expirationDate: newToken.expirationDate,
type: newTokenType,
...(newTokenType === TokenType.Project && {
project: { key: selectedProject.key, name: selectedProject.name }