-
Notifications
You must be signed in to change notification settings - Fork 334
Expand file tree
/
Copy pathproject-secrets.spec.ts
More file actions
63 lines (50 loc) · 2.75 KB
/
project-secrets.spec.ts
File metadata and controls
63 lines (50 loc) · 2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import { ProjectSecretsListPagePo, ProjectSecretsCreateEditPo } from '@/cypress/e2e/po/pages/explorer/project-secrets.po';
import { NamespaceFilterPo } from '@/cypress/e2e/po/components/namespace-filter.po';
const projectSecretsListPage = new ProjectSecretsListPagePo('local');
const namespaceFilter = new NamespaceFilterPo();
const targetProject = {
name: 'default', label: 'Default', namespace: ''
};
const projectScopedSecretName = 'e2e-project-scoped-secret-name';
const username = 'test';
const password = 'test-password';
describe('Project Secrets', { testIsolation: false, tags: ['@explorer2', '@adminUser'] }, () => {
beforeEach(() => {
cy.login();
cy.getRancherResource('v1', 'management.cattle.io.projects').then((resp: Cypress.Response<any>) => {
targetProject.namespace = resp.body.data.find((item: any) => item.spec.displayName === 'Default').status.backingNamespace;
});
cy.intercept('POST', '/v1/secrets?exclude=metadata.managedFields').as('createProjectScopedSecret');
});
it('has the correct title', () => {
projectSecretsListPage.goTo();
projectSecretsListPage.title().should('include', 'Project Secrets');
cy.title().should('eq', 'Rancher - local - Project Secrets');
});
it('creates a project-scoped secret and displays it in the list', () => {
namespaceFilter.toggle();
namespaceFilter.clickOptionByLabel('All Namespaces');
namespaceFilter.closeDropdown();
const secretCreatePage = new ProjectSecretsCreateEditPo('local');
projectSecretsListPage.goTo();
projectSecretsListPage.createButtonTitle().should('eq', 'Create');
projectSecretsListPage.createButton().click();
// create a project scoped secret
secretCreatePage.waitForPage();
secretCreatePage.selectSecretSubtype('kubernetes.io/basic-auth').click();
secretCreatePage.projectSelect().toggle();
secretCreatePage.projectSelect().clickOptionWithLabel(targetProject.label);
secretCreatePage.nameNsDescription().name().set(projectScopedSecretName);
secretCreatePage.basicAuthUsernameInput().set(username);
secretCreatePage.basicAuthPasswordInput().set(password, true);
secretCreatePage.saveOrCreate().click();
cy.wait('@createProjectScopedSecret', { requestTimeout: 10000 }).then((req) => {
const payload = req.request?.body;
expect(payload.metadata.namespace).to.eq(targetProject.namespace);
expect(payload.metadata.labels['management.cattle.io/project-scoped-secret']).to.eq(targetProject.namespace);
expect(payload.metadata.name).to.eq(projectScopedSecretName);
});
cy.deleteRancherResource('v1', `secrets/${ targetProject.name }`, projectScopedSecretName, true);
cy.deleteRancherResource('v1', `secrets/${ targetProject.namespace }`, projectScopedSecretName, true);
});
});