mirror of https://github.com/rancher/dashboard.git
111 lines
4.2 KiB
TypeScript
111 lines
4.2 KiB
TypeScript
import { GitRepoCreatePo } from '@/cypress/e2e/po/pages/fleet/gitrepo-create.po';
|
|
import { FleetGitRepoListPagePo } from '@/cypress/e2e/po/pages/fleet/fleet.cattle.io.gitrepo.po';
|
|
import { FleetDashboardPagePo } from '@/cypress/e2e/po/pages/fleet/fleet-dashboard.po';
|
|
import { gitRepoCreateRequest } from '@/cypress/e2e/blueprints/fleet/gitrepos';
|
|
import { generateFakeClusterDataAndIntercepts } from '@/cypress/e2e/blueprints/nav/fake-cluster';
|
|
import PreferencesPagePo from '@/cypress/e2e/po/pages/preferences.po';
|
|
|
|
const fakeProvClusterId = 'some-fake-cluster-id';
|
|
const fakeMgmtClusterId = 'some-fake-mgmt-id';
|
|
|
|
describe('Git Repo', { tags: ['@fleet', '@adminUser'] }, () => {
|
|
describe('Create', () => {
|
|
const gitRepoCreatePage = new GitRepoCreatePo('_');
|
|
const repoList = [];
|
|
|
|
before(() => {
|
|
cy.login();
|
|
|
|
// generate a fake cluster that can be usable in fleet
|
|
generateFakeClusterDataAndIntercepts(fakeProvClusterId, fakeMgmtClusterId);
|
|
});
|
|
|
|
it('Should be able to create a git repo', () => {
|
|
cy.intercept('POST', '/v1/secrets/fleet-default').as('interceptSecret');
|
|
cy.intercept('POST', '/v1/fleet.cattle.io.gitrepos').as('interceptGitRepo');
|
|
|
|
gitRepoCreatePage.goTo();
|
|
gitRepoCreatePage.waitForPage();
|
|
|
|
const { name } = gitRepoCreateRequest.metadata;
|
|
const {
|
|
repo, branch, paths, helmRepoURLRegex
|
|
} = gitRepoCreateRequest.spec;
|
|
|
|
gitRepoCreatePage.setRepoName(name);
|
|
gitRepoCreatePage.setGitRepoUrl(repo);
|
|
gitRepoCreatePage.selectWorkspace('fleet-default');
|
|
gitRepoCreatePage.setBranchName(branch);
|
|
gitRepoCreatePage.helmAuthSelectOrCreate().createBasicAuth('test', 'test');
|
|
gitRepoCreatePage.setHelmRepoURLRegex(helmRepoURLRegex);
|
|
|
|
gitRepoCreatePage.gitRepoPaths().setValueAtIndex(paths[0], 0);
|
|
gitRepoCreatePage.goToNext();
|
|
|
|
gitRepoCreatePage.targetCluster().toggle();
|
|
gitRepoCreatePage.targetCluster().clickOption(6);
|
|
gitRepoCreatePage.create();
|
|
|
|
repoList.push(name);
|
|
|
|
// First request is for creating credentials
|
|
let secretName = '';
|
|
|
|
cy.wait('@interceptSecret')
|
|
.then(({ request, response }) => {
|
|
expect(response.statusCode).to.eq(201);
|
|
secretName = response.body.metadata.name;
|
|
expect(secretName).not.to.eq('');
|
|
|
|
// Second request is for creating the git repo
|
|
return cy.wait('@interceptGitRepo');
|
|
})
|
|
.then(({ request, response }) => {
|
|
gitRepoCreateRequest.spec.helmSecretName = secretName;
|
|
expect(response.statusCode).to.eq(201);
|
|
expect(request.body).to.deep.eq(gitRepoCreateRequest);
|
|
|
|
const prefPage = new PreferencesPagePo();
|
|
|
|
// START TESTING https://github.com/rancher/dashboard/issues/9984
|
|
// change language to chinese
|
|
prefPage.goTo();
|
|
prefPage.languageDropdownMenu().checkVisible();
|
|
prefPage.languageDropdownMenu().toggle();
|
|
prefPage.languageDropdownMenu().isOpened();
|
|
prefPage.languageDropdownMenu().clickOption(2);
|
|
prefPage.languageDropdownMenu().isClosed();
|
|
|
|
const listPage = new FleetGitRepoListPagePo();
|
|
|
|
listPage.goTo();
|
|
listPage.waitForPage();
|
|
|
|
// TESTING https://github.com/rancher/dashboard/issues/9984 make sure details page loads fine
|
|
listPage.goToDetailsPage('fleet-e2e-test-gitrepo');
|
|
gitRepoCreatePage.title().contains('Git 仓库: fleet-e2e-test-gitrepo').should('be.visible');
|
|
})
|
|
;
|
|
});
|
|
|
|
after(() => {
|
|
const prefPage = new PreferencesPagePo();
|
|
|
|
// https://github.com/rancher/dashboard/issues/9984 reset lang to EN so that delete action can be performed
|
|
prefPage.goTo();
|
|
prefPage.languageDropdownMenu().checkVisible();
|
|
prefPage.languageDropdownMenu().toggle();
|
|
prefPage.languageDropdownMenu().isOpened();
|
|
prefPage.languageDropdownMenu().clickOption(1);
|
|
prefPage.languageDropdownMenu().isClosed();
|
|
|
|
const fleetDashboardPage = new FleetDashboardPagePo('_');
|
|
|
|
FleetDashboardPagePo.goTo();
|
|
const fleetLocalResourceTable = fleetDashboardPage.resourceTable('fleet-default');
|
|
|
|
fleetLocalResourceTable.sortableTable().deleteItemWithUI('fleet-e2e-test-gitrepo');
|
|
});
|
|
});
|
|
});
|