91 lines
2.9 KiB
TypeScript
91 lines
2.9 KiB
TypeScript
import { STATUS_TYPE } from 'kubeflow';
|
|
|
|
describe('+New Tensorboard form dialog', () => {
|
|
beforeEach(() => {
|
|
cy.mockDashboardRequest();
|
|
cy.mockNamespacesRequest();
|
|
cy.fixture('settings').then(settings => {
|
|
cy.mockTensorboardsRequest(settings.namespace);
|
|
});
|
|
cy.fixture('tensorboards').as('tbsRequest');
|
|
});
|
|
|
|
// tslint:disable-next-line: space-before-function-paren
|
|
it('renders every tensorboard name into the table', function () {
|
|
cy.visit('/');
|
|
cy.wait([
|
|
'@mockDashboardRequest',
|
|
'@mockNamespacesRequest',
|
|
'@mockTensorboardsRequest',
|
|
]);
|
|
|
|
let i = 0;
|
|
const tbs = this.tbsRequest.tensorboards;
|
|
// Table is sorted by Name in ascending order by default
|
|
// and tensorboards object is also sorted alphabetically by name
|
|
cy.get(`[data-cy-resource-table-row="Name"]`).each(element => {
|
|
expect(element).to.contain(tbs[i].name);
|
|
i++;
|
|
});
|
|
});
|
|
|
|
// tslint:disable-next-line: space-before-function-paren
|
|
it('renders correctly Status icon for every tensorboard', function () {
|
|
cy.visit('/');
|
|
cy.wait([
|
|
'@mockDashboardRequest',
|
|
'@mockNamespacesRequest',
|
|
'@mockTensorboardsRequest',
|
|
]);
|
|
|
|
let i = 0;
|
|
const tbs = this.tbsRequest.tensorboards;
|
|
cy.get('[data-cy-resource-table-row="Status"]').each(element => {
|
|
if (tbs[i].status.phase === STATUS_TYPE.READY) {
|
|
cy.wrap(element)
|
|
.find('lib-status-icon>mat-icon')
|
|
.should('contain', 'check_circle');
|
|
} else if (tbs[i].status.phase === STATUS_TYPE.UNAVAILABLE) {
|
|
cy.wrap(element)
|
|
.find('lib-status-icon>mat-icon')
|
|
.should('contain', 'timelapse');
|
|
} else if (tbs[i].status.phase === STATUS_TYPE.WARNING) {
|
|
cy.wrap(element)
|
|
.find('lib-status-icon>mat-icon')
|
|
.should('contain', 'warning');
|
|
} else if (
|
|
tbs[i].status.phase === STATUS_TYPE.WAITING ||
|
|
tbs[i].status.phase === STATUS_TYPE.TERMINATING
|
|
) {
|
|
cy.wrap(element).find('mat-spinner').should('exist');
|
|
}
|
|
i++;
|
|
});
|
|
});
|
|
|
|
// tslint:disable-next-line: space-before-function-paren quotemark
|
|
it("disables CONNECT button when tensorboard's status not ready", function () {
|
|
cy.visit('/');
|
|
cy.wait([
|
|
'@mockDashboardRequest',
|
|
'@mockNamespacesRequest',
|
|
'@mockTensorboardsRequest',
|
|
]);
|
|
|
|
let i = 0;
|
|
const tbs = this.tbsRequest.tensorboards;
|
|
cy.get('[data-cy-resource-table-row="actions"]').each(element => {
|
|
if (tbs[i].status.phase === STATUS_TYPE.READY) {
|
|
cy.wrap(element)
|
|
.find('[data-cy-resource-table-action-button="connect"]>button')
|
|
.should('not.have.attr', 'disabled');
|
|
} else {
|
|
cy.wrap(element)
|
|
.find('[data-cy-resource-table-action-button="connect"]>button')
|
|
.should('have.attr', 'disabled');
|
|
}
|
|
i++;
|
|
});
|
|
});
|
|
});
|