//
// SPDX-License-Identifier: AGPL-3.0
-import * as React from 'react';
+import React from 'react';
import { Button } from '@material-ui/core';
import { mount, configure } from 'enzyme';
-import * as Adapter from 'enzyme-adapter-react-16';
-import * as CopyToClipboard from 'react-copy-to-clipboard';
+import Adapter from 'enzyme-adapter-react-16';
+import CopyToClipboard from 'react-copy-to-clipboard';
import { TokenDialogComponent } from './token-dialog';
configure({ adapter: new Adapter() });
beforeEach(() => {
props = {
classes: {},
- data: {
- currentToken: '123123123123',
- },
+ token: 'xxxtokenxxx',
+ apiHost: 'example.com',
open: true,
dispatch: jest.fn(),
};
});
- describe('copy to clipboard', () => {
+ describe('Get API Token dialog', () => {
+ beforeEach(() => {
+ wrapper = mount(<TokenDialogComponent {...props} />);
+ });
+
+ it('should include API host and token', () => {
+ expect(wrapper.html()).toContain('export ARVADOS_API_HOST=example.com');
+ expect(wrapper.html()).toContain('export ARVADOS_API_TOKEN=xxxtokenxxx');
+ });
+
+ it('should show the token expiration if present', () => {
+ expect(props.tokenExpiration).toBeUndefined();
+ expect(wrapper.html()).toContain('This token does not have an expiration date');
+
+ const someDate = '2140-01-01T00:00:00.000Z'
+ props.tokenExpiration = new Date(someDate);
+ wrapper = mount(<TokenDialogComponent {...props} />);
+ expect(wrapper.html()).toContain(props.tokenExpiration.toLocaleString());
+ });
+
+ it('should show a create new token button when allowed', () => {
+ expect(props.canCreateNewTokens).toBeFalsy();
+ expect(wrapper.html()).not.toContain('GET NEW TOKEN');
+
+ props.canCreateNewTokens = true;
+ wrapper = mount(<TokenDialogComponent {...props} />);
+ expect(wrapper.html()).toContain('GET NEW TOKEN');
+ });
+ });
+
+ describe('copy to clipboard button', () => {
beforeEach(() => {
wrapper = mount(<TokenDialogComponent {...props} />);
});
payload: {
hideDuration: 2000,
kind: 1,
- message: 'Token copied to clipboard',
+ message: 'Shell code block copied',
},
type: 'OPEN_SNACKBAR',
});