Skip to content
Snippets Groups Projects
Commit 07611d1e authored by Florent POITTEVIN's avatar Florent POITTEVIN
Browse files

fix: test cypress

parent cb0dffd6
No related branches found
No related tags found
No related merge requests found
Showing
with 360 additions and 321 deletions
......@@ -2,44 +2,57 @@ describe("Admin Page", () => {
before(() => {
cy.visit("http://localhost:4200");
// sessionStorage.setItem("access_token", "");
cy.server();
cy.get("[data-test=login-vertical-input]").click();
cy.route({
url: "http://**/system-properties",
method: "GET",
}).as("systemProperty");
cy.wait("@systemProperty").then((xhr) => {
expect(xhr.status).to.eq(200);
});
if (sessionStorage.getItem("access_token") == null) {
// cy.get(".login").first().click();
cy.get("[data-test=login-horizontal-input]").click();
}
});
it("visit admin page", () => {
cy.get("#menu-vertical-admin").click();
cy.get(".avatar-wrapper").first().click();
cy.get("[data-test=link-menu-admin]").click();
cy.get("#admin-home-title").contains("Administration");
// this assert depends on the user right
cy.get("mat-card").should("have.length", 16);
});
it("visit organization unit", () => {
cy.get("#tile-card-building").click();
cy.get("[data-test=admin-tile-organizational-unit]").click();
cy.get("table").find("tr").its("length").should("be.gt", 1);
// go back
cy.get("#btn-toolbar-navigate_before").click();
cy.get("[data-test=back]").click();
});
it("visit submission policy", () => {
cy.get("#tile-card-user-check").click();
cy.get("[data-test=admin-tile-submission-policy]").click();
cy.get("table").find("tr").its("length").should("be", 1);
//go back
cy.get("#btn-toolbar-navigate_before").click();
cy.get("[data-test=back]").click();
});
it("visit oauth2 client", () => {
cy.get("#tile-card-passport").click();
cy.get("[data-test=admin-tile-oauth2]").click();
// assert that we have at least two client
cy.get("table").find("tr").its("length").should("be.gt", 1);
//go back
cy.get("#btn-toolbar-navigate_before").click();
cy.get("[data-test=back]").click();
});
it("visit user", () => {
cy.get("#tile-card-user").click();
cy.get("[data-test=admin-tile-users]").click();
// assert that we have at least two person
cy.get("table").find("tr").its("length").should("be.gt", 1);
//go back
cy.get("#btn-toolbar-navigate_before").click();
cy.get("[data-test=back]").click();
});
});
......@@ -3,11 +3,23 @@ describe("Deposit Page", () => {
before(() => {
cy.visit("http://localhost:4200");
// sessionStorage.setItem("access_token", "");
cy.get("[data-test=login-vertical-input]").click();
cy.server();
cy.route({
url: "http://**/system-properties",
method: "GET",
}).as("systemProperty");
cy.wait("@systemProperty").then((xhr) => {
expect(xhr.status).to.eq(200);
});
if (sessionStorage.getItem("access_token") == null) {
// cy.get(".login").first().click();
cy.get("[data-test=login-horizontal-input]").click();
}
});
it("visit deposit", () => {
cy.get("#menu-vertical-deposit").click();
cy.get("#menu-horizontal-deposit").click();
cy.get("[data-test=deposit-data-table]").should("exist");
});
......@@ -15,18 +27,18 @@ describe("Deposit Page", () => {
cy.get("#add-deposit-btn").click();
cy.get("[data-test=deposit-title]").type("Deposit Test 1");
cy.get("[data-test=deposit-description]").type("Description of deposit");
cy.get("[data-test=deposit-publicationDate]").invoke('val').should('not.be.empty');
cy.get("[data-test=deposit-publicationDate]").invoke("val").should("not.be.empty");
// simulate click event on the drop down
cy.get("[data-test=deposit-accessLevel]").first().click().get("mat-option").contains("Public").click();
cy.get("[data-test=deposit-addMeAuthor]").click();
/* cy.get("[data-test=deposit-licenseId]")
.click()
.get("#searchable-single-select-content")
.click()
.get("li")
.contains("CC BY-NC 4.0 (Creative Commons Attribution-NonCommercial 4.0 International)")
.click();*/
/* cy.get("[data-test=deposit-licenseId]")
.click()
.get("#searchable-single-select-content")
.click()
.get("li")
.contains("CC BY-NC 4.0 (Creative Commons Attribution-NonCommercial 4.0 International)")
.click();*/
cy.get("[data-test=deposit-language]").first().click().get("mat-option").contains("en").click();
......@@ -34,7 +46,7 @@ describe("Deposit Page", () => {
cy.route("POST", "http://**/preingest/deposits").as("deposit");
//click submit button to save
cy.get("#toolbar-btn-save").click();
cy.get("[data-test=save]").click();
cy.wait("@deposit").then((xhr) => {
expect(xhr.status).to.eq(201);
......@@ -51,7 +63,7 @@ describe("Deposit Page", () => {
// load mock data from a fixture or construct here
const fileName = "example.json";
cy.fixture(fileName).then(fileContent => {
cy.get("#file-upload").upload({ fileContent, fileName, mimeType: "application/json" });
cy.get("#file-upload").upload({fileContent, fileName, mimeType: "application/json"});
});
cy.get("#deposit-upload-confirm").click();
......@@ -61,7 +73,7 @@ describe("Deposit Page", () => {
cy.route({
url: "http://**/data?size=10&page=0&relativeLocation=/",
method: "GET"
method: "GET",
}).as("listFiles");
cy.wait("@listFiles").then((xhr) => {
......
This diff is collapsed.
......@@ -27,6 +27,7 @@
solidifyShortCuts
(onEnter)="menu.click(menu)"
(click)="menu.click(menu)"
[attr.data-test]="menu.dataTest ? menu.dataTest : undefined"
style="display: flex; align-items: center;"
>
<dlcm-shared-icon [iconName]="menu.icon"
......
......@@ -25,7 +25,6 @@ import {
import {
OAuth2Service,
ObservableUtil,
MARK_AS_TRANSLATABLE,
urlSeparator,
} from "solidify-frontend";
......@@ -148,6 +147,7 @@ export abstract class AbstractMainToolbarPresentational extends SharedAbstractPr
labelToTranslate: AppHelper.preservationPlanning,
isVisible: () => PermissionUtil.isUserHavePermission(this.logged, ApplicationRolePermissionEnum.adminPermission, this.userRoles),
icon: IconNameEnum.preservationPlanning,
dataTest: "link-menu-preservation-planning",
},
{
click: (menu) => this.navigate(menu.path),
......@@ -155,6 +155,7 @@ export abstract class AbstractMainToolbarPresentational extends SharedAbstractPr
labelToTranslate: AppHelper.admin,
isVisible: () => PermissionUtil.isUserHavePermission(this.logged, ApplicationRolePermissionEnum.adminPermission, this.userRoles),
icon: IconNameEnum.administration,
dataTest: "link-menu-admin",
},
];
......@@ -224,4 +225,5 @@ export interface MenuToolbar {
badgeCounter?: (() => string) | undefined;
badgeDescription?: string | undefined;
badgeHidden?: (() => boolean) | undefined;
dataTest?: string;
}
......@@ -15,6 +15,7 @@
class="card"
[tabIndex]="0"
solidifyShortCuts
[attr.data-test]="tile.dataTest ? tile.dataTest : undefined"
(onEnter)="navigate(tile.path)"
(click)="navigate(tile.path)"
id="tile-card-{{tile.avatarIcon}}"
......
......@@ -12,8 +12,6 @@ import {
} from "@shared/components/routables/shared-abstract-home/shared-abstract-home.routable";
import {IconNameEnum} from "@shared/enums/icon-name.enum";
import {MARK_AS_TRANSLATABLE} from "solidify-frontend";
import {AppHelper} from "@app/app.helper";
@Component({
selector: "dlcm-admin-home-routable",
......@@ -29,6 +27,7 @@ export class AdminHomeRoutable extends SharedAbstractHomeRoutable {
subtitleToTranslate: MARK_AS_TRANSLATABLE("admin.organizationalUnit.home.subtitle"),
path: RoutesEnum.adminOrganizationalUnit,
permission: ApplicationRolePermissionEnum.noPermission,
dataTest: "admin-tile-organizational-unit",
},
{
avatarIcon: IconNameEnum.submissionPolicies,
......@@ -36,6 +35,7 @@ export class AdminHomeRoutable extends SharedAbstractHomeRoutable {
subtitleToTranslate: MARK_AS_TRANSLATABLE("admin.submissionPolicy.home.subtitle"),
path: RoutesEnum.adminSubmissionPolicy,
permission: ApplicationRolePermissionEnum.noPermission,
dataTest: "admin-tile-submission-policy",
},
{
avatarIcon: IconNameEnum.preservationPolicies,
......@@ -78,6 +78,7 @@ export class AdminHomeRoutable extends SharedAbstractHomeRoutable {
subtitleToTranslate: MARK_AS_TRANSLATABLE("admin.user.home.subtitle"),
path: RoutesEnum.adminUser,
permission: ApplicationRolePermissionEnum.rootPermission,
dataTest: "admin-tile-users",
},
{
avatarIcon: IconNameEnum.roles,
......@@ -99,6 +100,7 @@ export class AdminHomeRoutable extends SharedAbstractHomeRoutable {
subtitleToTranslate: MARK_AS_TRANSLATABLE("admin.oauth2.home.subtitle"),
path: RoutesEnum.adminOAuth2client,
permission: ApplicationRolePermissionEnum.rootPermission,
dataTest: "admin-tile-oauth2",
},
{
avatarIcon: IconNameEnum.peoples,
......
......@@ -82,6 +82,7 @@ export class DepositCreateRoutable extends SharedAbstractCreateRoutable<Deposit,
icon: IconNameEnum.save,
labelToTranslate: MARK_AS_TRANSLATABLE("app.navigation.button.save"),
order: 40,
dataTest: "save",
callback: () => this.formPresentational.onSubmit(),
displayCondition: (resource) => true,
disableCondition: () => this.formPresentational?.form?.pristine || this.formPresentational?.form?.invalid || this.formPresentational?.formFormly?.invalid,
......
......@@ -11,6 +11,7 @@
[dlcmMatButtonTheme]="button.typeButton"
[matTooltip]="button.tooltipToTranslate | translate"
[tabIndex]="0"
[attr.data-test]="button.dataTest ? button.dataTest : undefined"
[color]="button.color === 'success' ? 'primary' : button.color"
solidifyShortCuts
(onEnter)="button.callback ? button.callback(currentModel, buttonRef._elementRef) : navigate(button.route)"
......
......@@ -133,6 +133,7 @@ export class ButtonToolbarDetailPresentational<TResourceModel extends BaseResour
icon: IconNameEnum.save,
labelToTranslate: this.mode === "create" ? this.keyCreateButtonToTranslate : this.keySaveButtonToTranslate,
order: 50,
dataTest: "save",
callback: () => this.save(),
displayCondition: (resource) => this.mode !== "detail" && this.saveAvailable,
disableCondition: () => this.formPresentational?.form?.pristine || this.formPresentational?.form?.invalid,
......
......@@ -10,6 +10,7 @@
[dlcmMatButtonTheme]="button.typeButton"
[color]="button.color === 'success' ? 'primary' : button.color"
[tabIndex]="0"
[attr.data-test]="button.dataTest ? button.dataTest : undefined"
[matTooltip]="button.tooltipToTranslate | translate"
solidifyShortCuts
(click)="button.callback ? button.callback(undefined, buttonRef._elementRef) : navigate(button.route)"
......
......@@ -13,8 +13,8 @@ import {
} from "rxjs";
import {
BaseResource,
ObservableUtil,
MARK_AS_TRANSLATABLE,
ObservableUtil,
} from "solidify-frontend";
@Component({
......@@ -49,6 +49,7 @@ export class ButtonToolbarListPresentational<TResourceModel extends BaseResource
order: 10,
displayCondition: () => this.backAvailable,
callback: () => this.backToList(),
dataTest: "back",
},
{
color: "primary",
......@@ -58,6 +59,7 @@ export class ButtonToolbarListPresentational<TResourceModel extends BaseResource
order: 20,
displayCondition: (currentModel) => this.createAvailable,
callback: (currentModel, buttonElementRef) => this.create(buttonElementRef),
dataTest: "create",
},
];
super.ngOnInit();
......
......@@ -62,4 +62,5 @@ export interface SharedHomeTileModel {
subtitleToTranslate: string;
path: RoutesEnum;
permission: ApplicationRolePermissionEnum;
dataTest?: string;
}
......@@ -26,6 +26,7 @@ export interface ExtraButtonToolbar<TResourceModel extends BaseResource> {
route?: RoutesEnum;
callback?: (current?: TResourceModel | undefined, buttonElementRef?: ElementRef | undefined) => void;
order?: number;
dataTest?: string;
displayCondition?: (current: TResourceModel | undefined) => ObservableOrPromiseOrValue<boolean>;
disableCondition?: (current: TResourceModel | undefined) => ObservableOrPromiseOrValue<boolean>;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment