mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
Fix e2e issues
This commit is contained in:
@@ -7,7 +7,7 @@ describe('Item Statistics Page', () => {
|
|||||||
it('should load if you click on "Statistics" from an Item/Entity page', () => {
|
it('should load if you click on "Statistics" from an Item/Entity page', () => {
|
||||||
cy.visit('/entities/publication/'.concat(Cypress.env('DSPACE_TEST_ENTITY_PUBLICATION')));
|
cy.visit('/entities/publication/'.concat(Cypress.env('DSPACE_TEST_ENTITY_PUBLICATION')));
|
||||||
cy.get('ds-navbar ds-link-menu-item a[data-test="link-menu-item.menu.section.statistics"]').click();
|
cy.get('ds-navbar ds-link-menu-item a[data-test="link-menu-item.menu.section.statistics"]').click();
|
||||||
cy.location('pathname').should('eq', ITEMSTATISTICSPAGE);
|
cy.location('pathname').should('eq', '/entities/publication/'.concat(Cypress.env('DSPACE_TEST_ENTITY_PUBLICATION')));
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should contain element ds-item-statistics-page when navigating to an item statistics page', () => {
|
it('should contain element ds-item-statistics-page when navigating to an item statistics page', () => {
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
[ngClass]="{ disabled: isDisabled }"
|
[ngClass]="{ disabled: isDisabled }"
|
||||||
role="menuitem"
|
role="menuitem"
|
||||||
[attr.aria-disabled]="isDisabled"
|
[attr.aria-disabled]="isDisabled"
|
||||||
[attr.aria-labelledby]="adminMenuSectionTitleId(section.id)"
|
[attr.aria-labelledby]="adminMenuSectionTitleAccessibilityHandle(section)"
|
||||||
[routerLink]="itemModel.link"
|
[routerLink]="itemModel.link"
|
||||||
(keyup.space)="navigate($event)"
|
(keyup.space)="navigate($event)"
|
||||||
(keyup.enter)="navigate($event)"
|
(keyup.enter)="navigate($event)"
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="sidebar-collapsible-element-outer-wrapper">
|
<div class="sidebar-collapsible-element-outer-wrapper">
|
||||||
<div class="sidebar-collapsible-element-inner-wrapper sidebar-item">
|
<div class="sidebar-collapsible-element-inner-wrapper sidebar-item">
|
||||||
<span [id]="adminMenuSectionTitleId(section.id)" [attr.data-test]="adminMenuSectionTitleId(section.id) | dsBrowserOnly">
|
<span [id]="adminMenuSectionTitleAccessibilityHandle(section)" [attr.data-test]="adminMenuSectionTitleAccessibilityHandle(section) | dsBrowserOnly">
|
||||||
{{itemModel.text | translate}}
|
{{itemModel.text | translate}}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -66,11 +66,13 @@ export class AdminSidebarSectionComponent extends AbstractMenuSectionComponent i
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
adminMenuSectionId(sectionId: string) {
|
adminMenuSectionId(section: MenuSection) {
|
||||||
return `admin-menu-section-${sectionId}`;
|
const accessibilityHandle = section.accessibilityHandle ?? section.id;
|
||||||
|
return `admin-menu-section-${accessibilityHandle}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
adminMenuSectionTitleId(sectionId: string) {
|
adminMenuSectionTitleAccessibilityHandle(section: MenuSection) {
|
||||||
return `admin-menu-section-${sectionId}-title`;
|
const accessibilityHandle = section.accessibilityHandle ?? section.id;
|
||||||
|
return `admin-menu-section-${accessibilityHandle}-title`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<a class="sidebar-section-wrapper"
|
<a class="sidebar-section-wrapper"
|
||||||
role="menuitem" tabindex="0"
|
role="menuitem" tabindex="0"
|
||||||
aria-haspopup="menu"
|
aria-haspopup="menu"
|
||||||
[attr.aria-controls]="adminMenuSectionId(section.id)"
|
[attr.aria-controls]="adminMenuSectionId(section)"
|
||||||
[attr.aria-expanded]="isExpanded$ | async"
|
[attr.aria-expanded]="isExpanded$ | async"
|
||||||
[attr.aria-label]="('menu.section.toggle.' + section.id) | translate"
|
[attr.aria-label]="('menu.section.toggle.' + section.id) | translate"
|
||||||
[class.disabled]="section.model?.disabled"
|
[class.disabled]="section.model?.disabled"
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="sidebar-collapsible-element-outer-wrapper">
|
<div class="sidebar-collapsible-element-outer-wrapper">
|
||||||
<div class="sidebar-collapsible-element-inner-wrapper sidebar-item toggler-wrapper">
|
<div class="sidebar-collapsible-element-inner-wrapper sidebar-item toggler-wrapper">
|
||||||
<span [id]="adminMenuSectionTitleId(section.id)" [attr.data-test]="adminMenuSectionTitleId(section.id) | dsBrowserOnly">
|
<span [id]="adminMenuSectionTitleAccessibilityHandle(section)" [attr.data-test]="adminMenuSectionTitleAccessibilityHandle(section) | dsBrowserOnly">
|
||||||
<ng-container
|
<ng-container
|
||||||
*ngComponentOutlet="(sectionMap$ | async).get(section.id).component; injector: (sectionMap$ | async).get(section.id).injector;"></ng-container>
|
*ngComponentOutlet="(sectionMap$ | async).get(section.id).component; injector: (sectionMap$ | async).get(section.id).injector;"></ng-container>
|
||||||
</span>
|
</span>
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
<div class="sidebar-fixed-element-wrapper"></div>
|
<div class="sidebar-fixed-element-wrapper"></div>
|
||||||
<div class="sidebar-collapsible-element-outer-wrapper">
|
<div class="sidebar-collapsible-element-outer-wrapper">
|
||||||
<div class="sidebar-collapsible-element-inner-wrapper">
|
<div class="sidebar-collapsible-element-inner-wrapper">
|
||||||
<div class="sidebar-sub-level-item-list" role="menu" [id]="adminMenuSectionId(section.id)" [attr.aria-label]="('menu.section.' + section.id) | translate">
|
<div class="sidebar-sub-level-item-list" role="menu" [id]="adminMenuSectionId(section)" [attr.aria-label]="('menu.section.' + section.id) | translate">
|
||||||
<div class="sidebar-item" *ngFor="let subSection of (subSections$ | async)">
|
<div class="sidebar-item" *ngFor="let subSection of (subSections$ | async)">
|
||||||
<ng-container
|
<ng-container
|
||||||
*ngComponentOutlet="(sectionMap$ | async).get(subSection.id).component; injector: (sectionMap$ | async).get(subSection.id).injector;"></ng-container>
|
*ngComponentOutlet="(sectionMap$ | async).get(subSection.id).component; injector: (sectionMap$ | async).get(subSection.id).injector;"></ng-container>
|
||||||
|
@@ -19,6 +19,7 @@ import { EditMenuProvider } from './edit.menu';
|
|||||||
describe('EditMenuProvider', () => {
|
describe('EditMenuProvider', () => {
|
||||||
|
|
||||||
const expectedTopSection: PartialMenuSection = {
|
const expectedTopSection: PartialMenuSection = {
|
||||||
|
accessibilityHandle: 'edit',
|
||||||
visible: true,
|
visible: true,
|
||||||
model: {
|
model: {
|
||||||
type: MenuItemType.TEXT,
|
type: MenuItemType.TEXT,
|
||||||
|
@@ -39,6 +39,7 @@ export class EditMenuProvider extends AbstractExpandableMenuProvider {
|
|||||||
public getTopSection(): Observable<PartialMenuSection> {
|
public getTopSection(): Observable<PartialMenuSection> {
|
||||||
return observableOf(
|
return observableOf(
|
||||||
{
|
{
|
||||||
|
accessibilityHandle: 'edit',
|
||||||
model: {
|
model: {
|
||||||
type: MenuItemType.TEXT,
|
type: MenuItemType.TEXT,
|
||||||
text: 'menu.section.edit',
|
text: 'menu.section.edit',
|
||||||
@@ -55,7 +56,7 @@ export class EditMenuProvider extends AbstractExpandableMenuProvider {
|
|||||||
this.authorizationService.isAuthorized(FeatureID.IsCommunityAdmin),
|
this.authorizationService.isAuthorized(FeatureID.IsCommunityAdmin),
|
||||||
this.authorizationService.isAuthorized(FeatureID.CanEditItem),
|
this.authorizationService.isAuthorized(FeatureID.CanEditItem),
|
||||||
]).pipe(
|
]).pipe(
|
||||||
map(([isCollectionAdmin, isCommunityAdmin, canEditItem]) => {
|
map(([isCollectionAdmin, isCommunityAdmin, canEditItem]: [boolean, boolean, boolean]) => {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
visible: isCommunityAdmin,
|
visible: isCommunityAdmin,
|
||||||
|
@@ -19,6 +19,7 @@ import { ExportMenuProvider } from './export.menu';
|
|||||||
|
|
||||||
describe('ExportMenuProvider', () => {
|
describe('ExportMenuProvider', () => {
|
||||||
const expectedTopSection: PartialMenuSection = {
|
const expectedTopSection: PartialMenuSection = {
|
||||||
|
accessibilityHandle: 'export',
|
||||||
visible: true,
|
visible: true,
|
||||||
model: {
|
model: {
|
||||||
type: MenuItemType.TEXT,
|
type: MenuItemType.TEXT,
|
||||||
|
@@ -43,6 +43,7 @@ export class ExportMenuProvider extends AbstractExpandableMenuProvider {
|
|||||||
public getTopSection(): Observable<PartialMenuSection> {
|
public getTopSection(): Observable<PartialMenuSection> {
|
||||||
return observableOf(
|
return observableOf(
|
||||||
{
|
{
|
||||||
|
accessibilityHandle: 'export',
|
||||||
model: {
|
model: {
|
||||||
type: MenuItemType.TEXT,
|
type: MenuItemType.TEXT,
|
||||||
text: 'menu.section.export',
|
text: 'menu.section.export',
|
||||||
@@ -58,7 +59,7 @@ export class ExportMenuProvider extends AbstractExpandableMenuProvider {
|
|||||||
this.authorizationService.isAuthorized(FeatureID.AdministratorOf),
|
this.authorizationService.isAuthorized(FeatureID.AdministratorOf),
|
||||||
this.scriptDataService.scriptWithNameExistsAndCanExecute(METADATA_EXPORT_SCRIPT_NAME),
|
this.scriptDataService.scriptWithNameExistsAndCanExecute(METADATA_EXPORT_SCRIPT_NAME),
|
||||||
]).pipe(
|
]).pipe(
|
||||||
map(([authorized, metadataExportScriptExists]) => {
|
map(([authorized, metadataExportScriptExists]: [boolean, boolean]) => {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
visible: authorized && metadataExportScriptExists,
|
visible: authorized && metadataExportScriptExists,
|
||||||
|
@@ -18,6 +18,7 @@ import { NewMenuProvider } from './new.menu';
|
|||||||
|
|
||||||
describe('NewMenuProvider', () => {
|
describe('NewMenuProvider', () => {
|
||||||
const expectedTopSection: PartialMenuSection = {
|
const expectedTopSection: PartialMenuSection = {
|
||||||
|
accessibilityHandle: 'new',
|
||||||
visible: true,
|
visible: true,
|
||||||
model: {
|
model: {
|
||||||
type: MenuItemType.TEXT,
|
type: MenuItemType.TEXT,
|
||||||
|
@@ -40,6 +40,7 @@ export class NewMenuProvider extends AbstractExpandableMenuProvider {
|
|||||||
public getTopSection(): Observable<PartialMenuSection> {
|
public getTopSection(): Observable<PartialMenuSection> {
|
||||||
return observableOf(
|
return observableOf(
|
||||||
{
|
{
|
||||||
|
accessibilityHandle: 'new',
|
||||||
model: {
|
model: {
|
||||||
type: MenuItemType.TEXT,
|
type: MenuItemType.TEXT,
|
||||||
text: 'menu.section.new',
|
text: 'menu.section.new',
|
||||||
@@ -56,7 +57,7 @@ export class NewMenuProvider extends AbstractExpandableMenuProvider {
|
|||||||
this.authorizationService.isAuthorized(FeatureID.IsCommunityAdmin),
|
this.authorizationService.isAuthorized(FeatureID.IsCommunityAdmin),
|
||||||
this.authorizationService.isAuthorized(FeatureID.AdministratorOf),
|
this.authorizationService.isAuthorized(FeatureID.AdministratorOf),
|
||||||
this.authorizationService.isAuthorized(FeatureID.CanSubmit),
|
this.authorizationService.isAuthorized(FeatureID.CanSubmit),
|
||||||
]).pipe(map(([isCollectionAdmin, isCommunityAdmin, isSiteAdmin, canSubmit]) => {
|
]).pipe(map(([isCollectionAdmin, isCommunityAdmin, isSiteAdmin, canSubmit]: [boolean, boolean, boolean, boolean]) => {
|
||||||
|
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user