mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-07-24 17:31:52 +00:00
Merge remote-tracking branch 'origin/develop' into ACS-5328-create-folder-aca-playwright-tests
# Conflicts: # projects/aca-playwright-shared/src/base-config/index.ts # projects/aca-playwright-shared/src/page-objects/components/aca-page-layout-header.component.ts # projects/aca-playwright-shared/src/page-objects/components/adf-folder-dialog.component.ts # projects/aca-playwright-shared/src/page-objects/components/manageRules/manage-rules.component.ts # projects/aca-playwright-shared/src/page-objects/pages/personal-files.page.ts
This commit is contained in:
@@ -5,6 +5,15 @@
|
||||
],
|
||||
"plugins": ["@nrwl/nx"],
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["*.ts"],
|
||||
"plugins": ["@alfresco/eslint-angular"],
|
||||
"extends": ["plugin:@angular-eslint/template/process-inline-templates"],
|
||||
"excludedFiles": ["*.spec.ts"],
|
||||
"rules": {
|
||||
"@alfresco/eslint-angular/use-none-component-view-encapsulation": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
"files": [
|
||||
"*.ts"
|
||||
@@ -15,7 +24,6 @@
|
||||
"extends": [
|
||||
"plugin:@nrwl/nx/typescript",
|
||||
"plugin:@nrwl/nx/angular",
|
||||
"plugin:@angular-eslint/template/process-inline-templates",
|
||||
"plugin:@cspell/recommended"
|
||||
],
|
||||
"plugins": [
|
||||
@@ -315,10 +323,12 @@
|
||||
"*.html"
|
||||
],
|
||||
"extends": ["plugin:@nrwl/nx/angular-template", "plugin:@angular-eslint/template/accessibility"],
|
||||
"parser": "@angular-eslint/template-parser",
|
||||
"rules": {
|
||||
"@angular-eslint/template/no-negated-async": "off",
|
||||
"@angular-eslint/template/no-positive-tabindex": "error",
|
||||
"@angular-eslint/template/eqeqeq": "error"
|
||||
"@angular-eslint/template/eqeqeq": "error",
|
||||
"@angular-eslint/template/no-call-expression": "warn"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
1
.github/actions/publish-libs/npm-publish.sh
vendored
1
.github/actions/publish-libs/npm-publish.sh
vendored
@@ -12,7 +12,6 @@ fi
|
||||
|
||||
export PROJECTS=(
|
||||
'aca-content'
|
||||
'aca-folder-rules'
|
||||
'aca-preview'
|
||||
'aca-shared'
|
||||
'aca-viewer'
|
||||
|
57
.github/actions/run-e2e-playwright/action.yml
vendored
Normal file
57
.github/actions/run-e2e-playwright/action.yml
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
name: "Run e2e Playwright"
|
||||
description: "Run e2e Playwright"
|
||||
|
||||
inputs:
|
||||
options:
|
||||
description: 'Options'
|
||||
required: true
|
||||
type: string
|
||||
test-runner:
|
||||
description: 'Test runner'
|
||||
required: false
|
||||
type: string
|
||||
default: 'Playwright'
|
||||
artifact-name:
|
||||
description: Name of the artifact cache
|
||||
required: true
|
||||
type: string
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Setup and run with options
|
||||
shell: bash
|
||||
run: |
|
||||
# npx http-server -c-1 $CONTENT_CE_DIST_PATH -p 4200 > /dev/null &\
|
||||
|
||||
{
|
||||
echo "APP_CONFIG_ECM_HOST={protocol}//{hostname}{:port}"
|
||||
echo "APP_CONFIG_PLUGIN_FOLDER_RULES=true"
|
||||
echo "APP_CONFIG_PLUGIN_AOS=true"
|
||||
echo "APP_CONFIG_PLUGIN_CONTENT_SERVICE=true"
|
||||
echo "APP_CONFIG_ENABLE_MOBILE_APP_SWITCH=false"
|
||||
echo "APP_CONFIG_PROVIDER=ECM"
|
||||
echo "APP_CONFIG_AUTH_TYPE=BASIC"
|
||||
echo "APP_CONFIG_OAUTH2_HOST=http://localhost:4200/auth/realms/alfresco"
|
||||
echo "APP_CONFIG_OAUTH2_CLIENTID=alfresco"
|
||||
echo "APP_CONFIG_SESSION_TIME_FOR_OPEN_APP_DIALOG_DISPLAY_IN_HOURS=12"
|
||||
echo "APP_CONFIG_OAUTH2_IMPLICIT_FLOW=true"
|
||||
echo "APP_CONFIG_OAUTH2_SILENT_LOGIN=true"
|
||||
echo "APP_CONFIG_OAUTH2_REDIRECT_LOGOUT=/"
|
||||
echo "APP_CONFIG_OAUTH2_REDIRECT_LOGIN=/"
|
||||
echo "APP_CONFIG_OAUTH2_REDIRECT_SILENT_IFRAME_URI={protocol}//{hostname}{:port}/assets/silent-refresh.html"
|
||||
} >> .env
|
||||
|
||||
npm start > /dev/null &\
|
||||
|
||||
echo "Running playwright tests with options ${{ inputs.options }}"
|
||||
sleep 90
|
||||
npx nx run ${{ inputs.options }}-e2e:e2e
|
||||
|
||||
|
||||
- name: Upload E2Es results
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ inputs.artifact-name }}
|
||||
path: test-results/
|
4
.github/actions/run-e2e/action.yml
vendored
4
.github/actions/run-e2e/action.yml
vendored
@@ -22,7 +22,7 @@ runs:
|
||||
- name: Setup and run with options
|
||||
shell: bash
|
||||
run: |
|
||||
./node_modules/.bin/tsc -p "./e2e/$E2E_TSCONFIG" || exit 1;
|
||||
./node_modules/.bin/tsc -p "./e2e/protractor/$E2E_TSCONFIG" || exit 1;
|
||||
# npx http-server -c-1 $CONTENT_CE_DIST_PATH -p 4200 > /dev/null &\
|
||||
|
||||
{
|
||||
@@ -48,7 +48,7 @@ runs:
|
||||
if [ ${{ inputs.test-runner }} == "playwright" ]; then
|
||||
echo "Running playwright tests with options ${{ inputs.options }}"
|
||||
sleep 90
|
||||
npx playwright test --config ${{ inputs.options }}
|
||||
npx nx run ${{ inputs.options }}-e2e:e2e
|
||||
else
|
||||
echo "Running protractor tests with options ${{ inputs.options }}"
|
||||
echo "./node_modules/.bin/protractor \"./protractor.conf.js\" ${{ inputs.options }} || exit 1"
|
||||
|
@@ -11,7 +11,6 @@ fi
|
||||
|
||||
export PROJECTS=(
|
||||
'aca-content'
|
||||
'aca-folder-rules'
|
||||
'aca-preview'
|
||||
'aca-shared'
|
||||
'aca-viewer'
|
||||
|
25
.github/workflows/pull-request.yml
vendored
25
.github/workflows/pull-request.yml
vendored
@@ -13,6 +13,14 @@ env:
|
||||
APP_CONFIG_ECM_HOST: ${{ secrets.PIPELINE_ENV_URL }}
|
||||
ADMIN_EMAIL: ${{ secrets.PIPELINE_ADMIN_USERNAME }}
|
||||
ADMIN_PASSWORD: ${{ secrets.PIPELINE_ADMIN_PASSWORD }}
|
||||
HR_USER: ${{ secrets.HR_USER }}
|
||||
HR_USER_PASSWORD: ${{ secrets.HR_USER_PASSWORD }}
|
||||
SUPERADMIN_EMAIL: ${{ secrets.SUPERADMIN_EMAIL }}
|
||||
SUPERADMIN_PASSWORD: ${{ secrets.SUPERADMIN_PASSWORD }}
|
||||
IDENTITY_USER_EMAIL: ${{ secrets.IDENTITY_USER_EMAIL }}
|
||||
IDENTITY_USER_PASSWORD: ${{ secrets.IDENTITY_USER_PASSWORD }}
|
||||
CONTENT_IDENTITY_USERNAME: ${{ secrets.CONTENT_IDENTITY_USERNAME }}
|
||||
CONTENT_IDENTITY_PASSWORD: ${{ secrets.CONTENT_IDENTITY_PASSWORD }}
|
||||
SCREENSHOT_USERNAME: ${{ secrets.SCREENSHOT_USERNAME }}
|
||||
SCREENSHOT_PASSWORD: ${{ secrets.SCREENSHOT_PASSWORD}}
|
||||
AWS_REGION: "eu-west-2"
|
||||
@@ -96,7 +104,6 @@ jobs:
|
||||
unit-tests:
|
||||
- name: "aca-content"
|
||||
- name: "aca-shared"
|
||||
- name: "aca-folder-rules"
|
||||
- name: "aca-preview"
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -178,8 +185,16 @@ jobs:
|
||||
|
||||
e2es-playwright:
|
||||
needs: [lint, build, unit-tests]
|
||||
name: 'E2e test suites: Folder Rules - Playwright'
|
||||
name: 'E2e test suites: Playwright'
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
e2e-suites:
|
||||
- name: "actions"
|
||||
id: 1
|
||||
- name: "folder-rules"
|
||||
id: 2
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
@@ -204,10 +219,10 @@ jobs:
|
||||
- name: before playwright
|
||||
shell: bash
|
||||
run: npx playwright install chromium
|
||||
- uses: ./.github/actions/run-e2e
|
||||
- uses: ./.github/actions/run-e2e-playwright
|
||||
with:
|
||||
options: "e2e/playwright/tests/folder-rules/playwright.config.ts"
|
||||
artifact-name: folder-rules
|
||||
options: "${{ matrix.e2e-suites.name }}"
|
||||
artifact-name: ${{ matrix.e2e-suites.name }}
|
||||
test-runner: playwright
|
||||
- uses: ./.github/actions/after-e2e
|
||||
|
||||
|
13
README.md
13
README.md
@@ -11,10 +11,14 @@ Please refer to the public [documentation](https://alfresco-content-app.netlify.
|
||||
|
||||
## Compatibility
|
||||
|
||||
| ACA | ACS | Node | ADF | Angular |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 4.1 | 7.4 | 18.x | 6.1.0 | 14.x |
|
||||
| 4.0 | 7.4 | 14.x | 6.0.0 | 14.x |
|
||||
| ACA | ADF | ACS | Node | Angular |
|
||||
| ---- | --- | --- | ---- | ------- |
|
||||
| 4.1 | 6.1 | 7.4 | 18.x | 14.x |
|
||||
| 4.0 | 6.1 | 7.4 | 14.x | 14.x |
|
||||
| 3.1 | 5.1 | 7.3 | | |
|
||||
| 3.0 | 5.0 | 7.3 | | |
|
||||
|
||||
> See <https://angular.io/guide/versions> for more details on Angular and Node.js compatibility
|
||||
|
||||
## Running
|
||||
|
||||
@@ -48,7 +52,6 @@ APP_CONFIG_DOWNLOAD_PROMPT_DELAY=<time>
|
||||
APP_CONFIG_DOWNLOAD_PROMPT_REMINDER_DELAY=<time>
|
||||
APP_CONFIG_ENABLE_FILE_AUTO_DOWNLOAD=true
|
||||
APP_CONFIG_FILE_AUTO_DOWNLOAD_SIZE_THRESHOLD_IN_MB=<file-size>
|
||||
|
||||
```
|
||||
|
||||
Where `<URL>` is the address of the ACS.
|
||||
|
@@ -79,13 +79,13 @@
|
||||
},
|
||||
{
|
||||
"glob": "folder-rules.plugin.json",
|
||||
"input": "projects/aca-folder-rules/assets",
|
||||
"input": "projects/aca-content/folder-rules/assets",
|
||||
"output": "./assets/plugins"
|
||||
},
|
||||
{
|
||||
"glob": "**/*",
|
||||
"input": "projects/aca-folder-rules/assets",
|
||||
"output": "./assets/aca-folder-rules"
|
||||
"input": "projects/aca-content/folder-rules/assets",
|
||||
"output": "./assets/folder-rules"
|
||||
},
|
||||
{
|
||||
"glob": "**/*",
|
||||
@@ -253,7 +253,11 @@
|
||||
"assets": [
|
||||
"app/src/assets",
|
||||
"app/src/favicon-96x96.png",
|
||||
"projects/aca-content/assets",
|
||||
{
|
||||
"glob": "**/*",
|
||||
"input": "projects/aca-content/assets",
|
||||
"output": "/assets"
|
||||
},
|
||||
{
|
||||
"input": "app/.tmp",
|
||||
"output": "/",
|
||||
|
@@ -39,7 +39,6 @@
|
||||
"copyright": "APP.COPYRIGHT"
|
||||
},
|
||||
"viewer.maxRetries": 1,
|
||||
"sharedLinkDateTimePickerType": "datetime",
|
||||
"customCssPath": "",
|
||||
"webFontPath": "",
|
||||
"pagination": {
|
||||
@@ -65,77 +64,6 @@
|
||||
"preserveState": true,
|
||||
"expandedSidenav": true
|
||||
},
|
||||
"languages": [
|
||||
{
|
||||
"key": "de",
|
||||
"label": "Deutsch"
|
||||
},
|
||||
{
|
||||
"key": "en",
|
||||
"label": "English"
|
||||
},
|
||||
{
|
||||
"key": "es",
|
||||
"label": "Español"
|
||||
},
|
||||
{
|
||||
"key": "fr",
|
||||
"label": "Français"
|
||||
},
|
||||
{
|
||||
"key": "it",
|
||||
"label": "Italiano"
|
||||
},
|
||||
{
|
||||
"key": "ja",
|
||||
"label": "日本語"
|
||||
},
|
||||
{
|
||||
"key": "nb",
|
||||
"label": "Bokmål"
|
||||
},
|
||||
{
|
||||
"key": "nl",
|
||||
"label": "Nederlands"
|
||||
},
|
||||
{
|
||||
"key": "pt-BR",
|
||||
"label": "Português (Brasil)"
|
||||
},
|
||||
{
|
||||
"key": "ru",
|
||||
"label": "Русский"
|
||||
},
|
||||
{
|
||||
"key": "zh-CN",
|
||||
"label": "中文简体"
|
||||
},
|
||||
{
|
||||
"key": "cs",
|
||||
"label": "Čeština"
|
||||
},
|
||||
{
|
||||
"key": "da",
|
||||
"label": "Dansk"
|
||||
},
|
||||
{
|
||||
"key": "fi",
|
||||
"label": "Suomi"
|
||||
},
|
||||
{
|
||||
"key": "pl",
|
||||
"label": "Polski"
|
||||
},
|
||||
{
|
||||
"key": "sv",
|
||||
"label": "Svenska"
|
||||
},
|
||||
{
|
||||
"key": "ar",
|
||||
"label": "العربية",
|
||||
"direction": "rtl"
|
||||
}
|
||||
],
|
||||
"mimeTypes": [
|
||||
{
|
||||
"value": "video/3gpp",
|
||||
@@ -1017,6 +945,19 @@
|
||||
"TAG"
|
||||
],
|
||||
"categories": [
|
||||
{
|
||||
"id": "logic",
|
||||
"name": "SEARCH.CATEGORIES.LOGIC",
|
||||
"enabled": true,
|
||||
"component": {
|
||||
"selector": "logical-filter",
|
||||
"settings": {
|
||||
"allowUpdateOnChange": false,
|
||||
"hideDefaultAction": true,
|
||||
"field": "cm:name,cm:title,cm:description,TEXT,TAG"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "queryName",
|
||||
"name": "SEARCH.SEARCH_HEADER.FILTERS.NAME.TITLE",
|
||||
|
@@ -1,4 +1,4 @@
|
||||
:host {
|
||||
app-root {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
|
||||
|
@@ -22,14 +22,15 @@
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { Component } from '@angular/core';
|
||||
import { Component, ViewEncapsulation } from '@angular/core';
|
||||
import { Observable, Subject } from 'rxjs';
|
||||
import { AppService } from '@alfresco/aca-shared';
|
||||
|
||||
@Component({
|
||||
selector: 'app-root',
|
||||
templateUrl: './app.component.html',
|
||||
styleUrls: ['./app.component.scss']
|
||||
styleUrls: ['./app.component.scss'],
|
||||
encapsulation: ViewEncapsulation.None
|
||||
})
|
||||
export class AppComponent {
|
||||
onDestroy$: Subject<boolean> = new Subject<boolean>();
|
||||
|
@@ -64,7 +64,7 @@ import { STORE_INITIAL_APP_DATA } from '@alfresco/aca-shared/store';
|
||||
import { ShellModule, SHELL_APP_SERVICE, SHELL_AUTH_TOKEN } from '@alfresco/adf-core/shell';
|
||||
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
|
||||
import { APP_ROUTES } from './app.routes';
|
||||
import { AppLoginModule } from './components/login/login.module';
|
||||
import { LoginComponent } from './components/login/login.component';
|
||||
|
||||
registerLocaleData(localeFr);
|
||||
registerLocaleData(localeDe);
|
||||
@@ -90,7 +90,7 @@ registerLocaleData(localeSv);
|
||||
CoreModule.forRoot(),
|
||||
SharedModule,
|
||||
CoreExtensionsModule.forRoot(),
|
||||
AppLoginModule,
|
||||
LoginComponent,
|
||||
environment.e2e ? NoopAnimationsModule : BrowserAnimationsModule,
|
||||
!environment.production ? StoreDevtoolsModule.instrument({ maxAge: 25 }) : [],
|
||||
RouterModule.forRoot(APP_ROUTES, {
|
||||
|
@@ -22,9 +22,14 @@
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { Component } from '@angular/core';
|
||||
import { AppConfigModule, LoginModule } from '@alfresco/adf-core';
|
||||
import { Component, ViewEncapsulation } from '@angular/core';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
@Component({
|
||||
templateUrl: './login.component.html'
|
||||
standalone: true,
|
||||
imports: [LoginModule, AppConfigModule, TranslateModule],
|
||||
templateUrl: './login.component.html',
|
||||
encapsulation: ViewEncapsulation.None
|
||||
})
|
||||
export class LoginComponent {}
|
||||
|
@@ -1,36 +0,0 @@
|
||||
/*!
|
||||
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* Alfresco Example Content Application
|
||||
*
|
||||
* This file is part of the Alfresco Example Content Application.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { NgModule } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { CoreModule } from '@alfresco/adf-core';
|
||||
import { LoginComponent } from './login.component';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
@NgModule({
|
||||
imports: [CommonModule, CoreModule.forChild(), TranslateModule.forChild()],
|
||||
exports: [LoginComponent],
|
||||
declarations: [LoginComponent]
|
||||
})
|
||||
export class AppLoginModule {}
|
@@ -23,9 +23,9 @@
|
||||
*/
|
||||
|
||||
import { NgModule } from '@angular/core';
|
||||
import { AcaFolderRulesModule } from '@alfresco/aca-content/folder-rules';
|
||||
import { AosExtensionModule } from '@alfresco/aca-content/ms-office';
|
||||
import { AcaAboutModule, DEV_MODE_TOKEN, PACKAGE_JSON } from '@alfresco/aca-content/about';
|
||||
import { AcaFolderRulesModule } from '@alfresco/aca-folder-rules';
|
||||
import { environment } from '../environments/environment';
|
||||
import packageJson from 'package.json';
|
||||
|
||||
|
@@ -1,45 +0,0 @@
|
||||
/*!
|
||||
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* Alfresco Example Content Application
|
||||
*
|
||||
* This file is part of the Alfresco Example Content Application.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { NgModule } from '@angular/core';
|
||||
import { MatMenuModule } from '@angular/material/menu';
|
||||
import { MatIconModule } from '@angular/material/icon';
|
||||
import { MatButtonModule } from '@angular/material/button';
|
||||
import { MatDialogModule, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';
|
||||
import { MatInputModule } from '@angular/material/input';
|
||||
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
||||
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
||||
import { MatCardModule } from '@angular/material/card';
|
||||
|
||||
@NgModule({
|
||||
imports: [MatMenuModule, MatIconModule, MatButtonModule, MatDialogModule, MatInputModule, MatSnackBarModule, MatProgressBarModule, MatCardModule],
|
||||
exports: [MatMenuModule, MatIconModule, MatButtonModule, MatDialogModule, MatInputModule, MatSnackBarModule, MatProgressBarModule, MatCardModule],
|
||||
providers: [
|
||||
{
|
||||
provide: MAT_DIALOG_DEFAULT_OPTIONS,
|
||||
useValue: { closeOnNavigation: true, hasBackdrop: true, autoFocus: true }
|
||||
}
|
||||
]
|
||||
})
|
||||
export class MaterialModule {}
|
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"$schema": "../../../../extension.schema.json",
|
||||
"$id": "app.demo.cardView",
|
||||
"$name": "app.demo.cardView",
|
||||
"$version": "1.0.0",
|
||||
"$vendor": "Hyland Software, Inc. and its affiliates",
|
||||
"$license": "LGPL-3.0",
|
||||
"$runtime": "1.5.0",
|
||||
"$description": "Simple extension that provides Card View toolbar button",
|
||||
|
||||
"features": {
|
||||
"toolbar": [
|
||||
{
|
||||
"id": "app.toolbar.cardView",
|
||||
"order": 50,
|
||||
"type": "custom",
|
||||
"component": "app.toolbar.cardView"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@@ -1,129 +0,0 @@
|
||||
{
|
||||
"$schema": "../../../../extension.schema.json",
|
||||
"$id": "app.debug.plugin",
|
||||
"$version": "1.0.0",
|
||||
"$name": "app.debug.plugin",
|
||||
"$vendor": "Hyland Software, Inc. and its affiliates",
|
||||
"$license": "LGPL-3.0",
|
||||
"$runtime": "1.5.0",
|
||||
"$description": "Plugin for debugging and testing purposes",
|
||||
|
||||
"actions": [
|
||||
{
|
||||
"id": "plugin1.actions.settings",
|
||||
"type": "NAVIGATE_URL",
|
||||
"payload": "/settings"
|
||||
},
|
||||
{
|
||||
"id": "plugin1.actions.info",
|
||||
"type": "SNACKBAR_INFO",
|
||||
"payload": "I'm a nice little popup raised by extension."
|
||||
},
|
||||
{
|
||||
"id": "plugin1.actions.node-name",
|
||||
"type": "SNACKBAR_INFO",
|
||||
"payload": "$('Action for ' + context.selection.first.entry.name)"
|
||||
}
|
||||
],
|
||||
|
||||
"features": {
|
||||
"viewer": {
|
||||
"openWith": [
|
||||
{
|
||||
"id": "plugin1.viewer.openWith.action1",
|
||||
"type": "button",
|
||||
"icon": "build",
|
||||
"title": "Snackbar",
|
||||
"actions": {
|
||||
"click": "plugin1.actions.info"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"navbar": [
|
||||
{
|
||||
"id": "__app.navbar.primary",
|
||||
"disabled": true,
|
||||
"items": [
|
||||
{
|
||||
"id": "app.navbar.personalFiles",
|
||||
"icon": "extension",
|
||||
"title": "APP.BROWSE.PERSONAL.SIDENAV_LINK.LABEL",
|
||||
"route": "personal-files"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"toolbar": [
|
||||
{
|
||||
"disabled": true,
|
||||
"id": "app.toolbar.createFolder",
|
||||
"type": "button",
|
||||
"order": 10,
|
||||
"title": "APP.NEW_MENU.MENU_ITEMS.CREATE_FOLDER",
|
||||
"description": "APP.NEW_MENU.TOOLTIPS.CREATE_FOLDER",
|
||||
"icon": "create_new_folder",
|
||||
"actions": {
|
||||
"click": "CREATE_FOLDER"
|
||||
},
|
||||
"rules": {
|
||||
"visible": "app.navigation.folder.canCreate"
|
||||
}
|
||||
},
|
||||
{
|
||||
"disabled": true,
|
||||
"id": "app.toolbar.uploadFile",
|
||||
"order": 11,
|
||||
"type": "button",
|
||||
"icon": "file_upload",
|
||||
"title": "APP.NEW_MENU.MENU_ITEMS.UPLOAD_FILE",
|
||||
"description": "APP.NEW_MENU.TOOLTIPS.UPLOAD_FILES",
|
||||
"actions": {
|
||||
"click": "UPLOAD_FILES"
|
||||
},
|
||||
"rules": {
|
||||
"visible": "app.navigation.folder.canUpload"
|
||||
}
|
||||
},
|
||||
{
|
||||
"disabled": true,
|
||||
"id": "app.toolbar.uploadFolder",
|
||||
"order": 12,
|
||||
"type": "button",
|
||||
"icon": "cloud_upload",
|
||||
"title": "APP.NEW_MENU.MENU_ITEMS.UPLOAD_FOLDER",
|
||||
"description": "APP.NEW_MENU.TOOLTIPS.UPLOAD_FOLDERS",
|
||||
"actions": {
|
||||
"click": "UPLOAD_FOLDER"
|
||||
},
|
||||
"rules": {
|
||||
"visible": "app.navigation.folder.canUpload"
|
||||
}
|
||||
},
|
||||
{
|
||||
"disabled": true,
|
||||
"id": "plugin1.toolbar.menu1",
|
||||
"type": "menu",
|
||||
"icon": "storage",
|
||||
"order": 300,
|
||||
"children": [
|
||||
{
|
||||
"id": "plugin1.toolbar.menu1.settings",
|
||||
"type": "button",
|
||||
"title": "Settings",
|
||||
"icon": "settings_applications",
|
||||
"actions": {
|
||||
"click": "plugin1.actions.settings"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"disabled": true,
|
||||
"id": "plugin1.toolbar.separator3",
|
||||
"order": 301,
|
||||
"type": "separator"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@@ -1,63 +0,0 @@
|
||||
{
|
||||
"$schema": "../../../../extension.schema.json",
|
||||
"$id": "app.demo.metadata",
|
||||
"$name": "metadata-plugin",
|
||||
"$version": "1.0.0",
|
||||
"$vendor": "Hyland Software, Inc. and its affiliates",
|
||||
"$license": "LGPL-3.0",
|
||||
"$runtime": "1.5.0",
|
||||
"$description": "metadata card configuration plugin - testing purpose",
|
||||
|
||||
"features": {
|
||||
"content-metadata-presets": [
|
||||
{
|
||||
"id": "app.content.metadata.custom",
|
||||
"custom": [
|
||||
{
|
||||
"id": "app.content.metadata.customGroup",
|
||||
"title": "testing extension props",
|
||||
"items": [
|
||||
{
|
||||
"id": "app.content.metadata.exifAspect",
|
||||
"disabled": true
|
||||
},
|
||||
{
|
||||
"id": "app.content.metadata.exifAspect2",
|
||||
"aspect": "exif:exif",
|
||||
"properties": [
|
||||
"exif:orientation",
|
||||
"exif:manufacturer",
|
||||
"exif:model",
|
||||
"exif:software"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "app.content.metadata.customGroup2",
|
||||
"title": "testing extension props2",
|
||||
"items": [
|
||||
{
|
||||
"id": "app.content.metadata.exifAspect",
|
||||
"aspect": "exif:exif",
|
||||
"properties": [
|
||||
"exif:pixelXDimension",
|
||||
"exif:pixelYDimension",
|
||||
"exif:dateTimeOriginal"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "app.content.metadata.kitten-images",
|
||||
"kitten-images": {
|
||||
"id": "app.content.metadata.kittenAspect",
|
||||
"custom:aspect": "*",
|
||||
"exif:exif": [ "exif:pixelXDimension", "exif:pixelYDimension"]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@@ -1,157 +0,0 @@
|
||||
{
|
||||
"$schema": "../../../../extension.schema.json",
|
||||
"$id": "app.debug-search.plugin",
|
||||
"$version": "1.0.0",
|
||||
"$name": "app.debug-search.plugin",
|
||||
"$vendor": "Hyland Software, Inc. and its affiliates",
|
||||
"$license": "LGPL-3.0",
|
||||
"$runtime": "1.5.0",
|
||||
"$description": "Plugin for debugging and testing purposes",
|
||||
|
||||
"features": {
|
||||
"search": [
|
||||
{
|
||||
"id": "app.search.example",
|
||||
"order": 200,
|
||||
"name": "Extension search (folder)",
|
||||
"default": true,
|
||||
"filterWithContains": true,
|
||||
"aca:fields": ["cm:name", "cm:title", "cm:description", "TEXT", "TAG"],
|
||||
"include": ["path", "allowableOperations", "properties"],
|
||||
"sorting": {
|
||||
"options": [
|
||||
{
|
||||
"key": "score",
|
||||
"label": "SEARCH.SORT.RELEVANCE",
|
||||
"type": "SCORE",
|
||||
"field": "score",
|
||||
"ascending": false
|
||||
},
|
||||
{
|
||||
"key": "name",
|
||||
"label": "SEARCH.SORT.FILENAME",
|
||||
"type": "FIELD",
|
||||
"field": "cm:name",
|
||||
"ascending": true
|
||||
},
|
||||
{
|
||||
"key": "title",
|
||||
"label": "SEARCH.SORT.TITLE",
|
||||
"type": "FIELD",
|
||||
"field": "cm:title",
|
||||
"ascending": true
|
||||
},
|
||||
{
|
||||
"key": "modified",
|
||||
"label": "SEARCH.SORT.MODIFIED_DATE",
|
||||
"type": "FIELD",
|
||||
"field": "cm:modified",
|
||||
"ascending": true
|
||||
},
|
||||
{
|
||||
"key": "modifier",
|
||||
"label": "SEARCH.SORT.MODIFIER",
|
||||
"type": "FIELD",
|
||||
"field": "cm:modifier",
|
||||
"ascending": true
|
||||
},
|
||||
{
|
||||
"key": "created",
|
||||
"label": "SEARCH.SORT.CREATE_DATE",
|
||||
"type": "FIELD",
|
||||
"field": "cm:created",
|
||||
"ascending": true
|
||||
},
|
||||
{
|
||||
"key": "content.sizeInBytes",
|
||||
"label": "SEARCH.SORT.SIZE",
|
||||
"type": "FIELD",
|
||||
"field": "content.size",
|
||||
"ascending": true
|
||||
},
|
||||
{
|
||||
"key": "content.mimetype",
|
||||
"label": "SEARCH.SORT.TYPE",
|
||||
"type": "FIELD",
|
||||
"field": "content.mimetype",
|
||||
"ascending": true
|
||||
}
|
||||
],
|
||||
"defaults": [
|
||||
{
|
||||
"key": "score",
|
||||
"type": "SCORE",
|
||||
"field": "score",
|
||||
"ascending": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"aca:triggeredOnChange": false,
|
||||
"resetButton": true,
|
||||
"filterQueries": [
|
||||
{ "query": "+TYPE:'cm:folder'" },
|
||||
{
|
||||
"query": "-TYPE:'cm:thumbnail' AND -TYPE:'cm:failedThumbnail' AND -TYPE:'cm:rating'"
|
||||
},
|
||||
{ "query": "-cm:creator:System AND -QNAME:comment" },
|
||||
{
|
||||
"query": "-TYPE:'st:site' AND -ASPECT:'st:siteContainer' AND -ASPECT:'sys:hidden'"
|
||||
},
|
||||
{
|
||||
"query": "-TYPE:'dl:dataList' AND -TYPE:'dl:todoList' AND -TYPE:'dl:issue'"
|
||||
},
|
||||
{ "query": "-TYPE:'fm:topic' AND -TYPE:'fm:post'" },
|
||||
{ "query": "-TYPE:'lnk:link'" },
|
||||
{ "query": "-PNAME:'0/wiki'" }
|
||||
],
|
||||
"facetQueries": {
|
||||
"label": "SEARCH.CATEGORIES.MODIFIED_DATE",
|
||||
"expanded": true,
|
||||
"queries": [
|
||||
{
|
||||
"label": "SEARCH.FACET_QUERIES.TODAY",
|
||||
"query": "cm:modified:[TODAY to TODAY]"
|
||||
},
|
||||
{
|
||||
"label": "SEARCH.FACET_QUERIES.THIS_WEEK",
|
||||
"query": "cm:modified:[NOW/DAY-7DAYS TO NOW/DAY+1DAY]"
|
||||
},
|
||||
{
|
||||
"label": "SEARCH.FACET_QUERIES.THIS_MONTH",
|
||||
"query": "cm:modified:[NOW/DAY-1MONTH TO NOW/DAY+1DAY]"
|
||||
},
|
||||
{
|
||||
"label": "SEARCH.FACET_QUERIES.LAST_6_MONTHS",
|
||||
"query": "cm:modified:[NOW/DAY-6MONTHS TO NOW/DAY+1DAY]"
|
||||
},
|
||||
{
|
||||
"label": "SEARCH.FACET_QUERIES.THIS_YEAR",
|
||||
"query": "cm:modified:[NOW/DAY-1YEAR TO NOW/DAY+1DAY]"
|
||||
}
|
||||
],
|
||||
"settings": {
|
||||
"allowUpdateOnChange": false,
|
||||
"hideDefaultAction": true
|
||||
}
|
||||
},
|
||||
"categories": [
|
||||
{
|
||||
"id": "createdDateRange",
|
||||
"name": "SEARCH.CATEGORIES.CREATED_DATE",
|
||||
"enabled": true,
|
||||
"component": {
|
||||
"selector": "date-range",
|
||||
"settings": {
|
||||
"allowUpdateOnChange": false,
|
||||
"hideDefaultAction": true,
|
||||
"field": "cm:created",
|
||||
"dateFormat": "DD-MMM-YY",
|
||||
"maxDate": "today"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
@@ -38,27 +38,31 @@ The documentation is divided into the following sections:
|
||||
|
||||
## Compatibility
|
||||
|
||||
| ACA Version | Built with | Tested on |
|
||||
| ----------- | ---------- | --------- |
|
||||
| ACA 3.1.0 | ADF 5.1.0 | ACS 7.3 |
|
||||
| ACA 3.0.0 | ADF 5.0.0 | ACS 7.3 |
|
||||
| ACA 2.4.0 | ADF 4.4.0 | ACS 6.2 |
|
||||
| ACA 2.3.0 | ADF 4.3.0 | ACS 6.2 |
|
||||
| ACA 2.2.0 | ADF 4.2.0 | ACS 6.2 |
|
||||
| ACA 2.1.0 | ADF 4.1.0 | ACS 6.2 |
|
||||
| ACA 1.12 | ADF 3.9.0 | ACS 6.2 |
|
||||
| ACA 1.11 | ADF 3.8.0 | ACS 6.2 |
|
||||
| ACA 1.10 | ADF 3.7.0 | ACS 6.2 |
|
||||
| ACA 1.9 | ADF 3.6.0 | ACS 6.2 |
|
||||
| ACA 1.8 | ADF 3.3.0 | ACS 6.1 |
|
||||
| ACA 1.7 | ADF 3.0.0 | ACS 6.1 |
|
||||
| ACA 1.6 | ADF 2.6.1 | ACS 6.1 |
|
||||
| ACA 1.5 | ADF 2.6.0 | ACS 6.0 |
|
||||
| ACA 1.4 | ADF 2.5.0 | ACS 6.0 |
|
||||
| ACA 1.3 | ADF 2.4.0 | ACS 6.0 |
|
||||
| ACA 1.2 | ADF 2.3.0 | ACS 5.2 |
|
||||
| ACA 1.1 | ADF 2.2.0 | ACS 5.2 |
|
||||
| ACA 1.0 | ADF 2.0.0 | ACS 5.2 |
|
||||
| ACA | ADF | ACS | Node | Angular |
|
||||
| ---- | --- | --- | ---- | ------- |
|
||||
| 4.1 | 6.1 | 7.4 | 18.x | 14.x |
|
||||
| 4.0 | 6.1 | 7.4 | 14.x | 14.x |
|
||||
| 3.1 | 5.1 | 7.3 | | |
|
||||
| 3.0 | 5.0 | 7.3 | | |
|
||||
| 2.4 | 4.4 | 6.2 | | |
|
||||
| 2.3 | 4.3 | 6.2 | | |
|
||||
| 2.2 | 4.2 | 6.2 | | |
|
||||
| 2.1 | 4.1 | 6.2 | | |
|
||||
| 1.12 | 3.9 | 6.2 | | |
|
||||
| 1.11 | 3.8 | 6.2 | | |
|
||||
| 1.10 | 3.7 | 6.2 | | |
|
||||
| 1.9 | 3.6 | 6.2 | | |
|
||||
| 1.8 | 3.3 | 6.1 | | |
|
||||
| 1.7 | 3.0 | 6.1 | | |
|
||||
| 1.6 | 2.6 | 6.1 | | |
|
||||
| 1.5 | 2.6 | 6.0 | | |
|
||||
| 1.4 | 2.5 | 6.0 | | |
|
||||
| 1.3 | 2.4 | 6.0 | | |
|
||||
| 1.2 | 2.3 | 5.2 | | |
|
||||
| 1.1 | 2.2 | 5.2 | | |
|
||||
| 1.0 | 2.0 | 5.2 | | |
|
||||
|
||||
> See <https://angular.io/guide/versions> for more details on Angular and Node.js compatibility
|
||||
|
||||
## Available Features
|
||||
|
||||
|
@@ -8,8 +8,8 @@ The Content App is based on [Angular CLI](https://cli.angular.io), and you can u
|
||||
|
||||
## Prerequisites for building
|
||||
|
||||
- [Node.js](https://nodejs.org/en/) 14.x
|
||||
- NPM 6.x
|
||||
- [Node.js](https://nodejs.org/en/) 18.x
|
||||
- NPM 9.x
|
||||
- (optional) [Angular CLI](https://cli.angular.io/) 14.x or later
|
||||
|
||||
> The Angular CLI libraries are already part of the setup.
|
||||
|
@@ -13,6 +13,7 @@ To install nvm you can run following:
|
||||
```sh
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
|
||||
```
|
||||
|
||||
for other installation options and troubleshooting instructions please follow [nvm installation docs](https://github.com/nvm-sh/nvm#install--update-script).
|
||||
|
||||
## Usage
|
||||
|
@@ -1,6 +1,5 @@
|
||||
path = require("path");
|
||||
module.exports = {
|
||||
"extends": "../../.eslintrc.json",
|
||||
{
|
||||
"extends": "../../../.eslintrc.json",
|
||||
"ignorePatterns": [
|
||||
"!**/*"
|
||||
],
|
||||
@@ -11,12 +10,16 @@ module.exports = {
|
||||
],
|
||||
"parserOptions": {
|
||||
"project": [
|
||||
path.join(__dirname, "tsconfig.lib.json"),
|
||||
path.join(__dirname, "tsconfig.spec.json")
|
||||
"e2e/playwright/actions/tsconfig.e2e.json"
|
||||
],
|
||||
"createDefaultProgram": true
|
||||
},
|
||||
"plugins": [
|
||||
"rxjs",
|
||||
"unicorn"
|
||||
],
|
||||
"rules": {
|
||||
"@typescript-eslint/no-floating-promises": "off"
|
||||
}
|
||||
}
|
||||
]
|
1
e2e/playwright/actions/exclude.tests.json
Normal file
1
e2e/playwright/actions/exclude.tests.json
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
@@ -22,15 +22,23 @@
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { BasePage, DataTableComponent } from '@alfresco/playwright-shared';
|
||||
import { Page } from '@playwright/test';
|
||||
import { PlaywrightTestConfig } from '@playwright/test';
|
||||
import { CustomConfig, getGlobalConfig, getExcludedTestsRegExpArray } from '@alfresco/playwright-shared';
|
||||
import EXCLUDED_JSON from './exclude.tests.json';
|
||||
|
||||
export class PersonalFilesPage extends BasePage {
|
||||
private static pageUrl = 'personal-files';
|
||||
const config: PlaywrightTestConfig<CustomConfig> = {
|
||||
...getGlobalConfig,
|
||||
|
||||
constructor(page: Page) {
|
||||
super(page, PersonalFilesPage.pageUrl);
|
||||
grepInvert: getExcludedTestsRegExpArray(EXCLUDED_JSON, 'Actions'),
|
||||
projects: [
|
||||
{
|
||||
name: 'Actions',
|
||||
testDir: './src/tests',
|
||||
use: {
|
||||
users: ['hruser']
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
public dataTable = new DataTableComponent(this.page);
|
||||
}
|
||||
export default config;
|
34
e2e/playwright/actions/project.json
Normal file
34
e2e/playwright/actions/project.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"$schema": "../../../node_modules/nx/schemas/project-schema.json",
|
||||
"name": "actions-e2e",
|
||||
"sourceRoot": "e2e/playwright/actions/src",
|
||||
"projectType": "application",
|
||||
"targets": {
|
||||
"e2e": {
|
||||
"executor": "nx:run-commands",
|
||||
"options": {
|
||||
"commands": [
|
||||
"npx playwright test --config=e2e/playwright/actions/playwright.config.ts"
|
||||
]
|
||||
},
|
||||
"configurations": {
|
||||
"production": {
|
||||
"devServerTarget": "content-ce:serve:production"
|
||||
}
|
||||
}
|
||||
},
|
||||
"lint": {
|
||||
"executor": "@angular-eslint/builder:lint",
|
||||
"options": {
|
||||
"lintFilePatterns": [
|
||||
"e2e/**/*.ts",
|
||||
"e2e/**/*.html"
|
||||
],
|
||||
"cache": true,
|
||||
"cacheLocation": ".eslintcache",
|
||||
"ignorePath": ".eslintignore"
|
||||
},
|
||||
"outputs": ["{options.outputFile}"]
|
||||
}
|
||||
}
|
||||
}
|
@@ -22,17 +22,29 @@
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { Page } from '@playwright/test';
|
||||
import { BaseComponent } from '../base.component';
|
||||
import { expect } from '@playwright/test';
|
||||
import { getUserState, test } from '@alfresco/playwright-shared';
|
||||
|
||||
export class MatMenuComponent extends BaseComponent {
|
||||
private static rootElement = '.mat-menu-content';
|
||||
test.use({ storageState: getUserState('hruser') });
|
||||
test.describe('Create actions', () => {
|
||||
let randomFolderName: string;
|
||||
|
||||
constructor(page: Page) {
|
||||
super(page, MatMenuComponent.rootElement);
|
||||
}
|
||||
test.beforeEach(async ({ personalFiles }) => {
|
||||
randomFolderName = `playwright-folder-${(Math.random() + 1).toString(36).substring(6)}`;
|
||||
await personalFiles.navigate();
|
||||
});
|
||||
|
||||
public getMenuItemsLocator = this.getChild('button');
|
||||
test.afterEach(async ({ personalFiles }) => {
|
||||
await personalFiles.dataTable.performActionFromExpandableMenu(randomFolderName, 'Delete');
|
||||
});
|
||||
|
||||
public getButtonByText = (text: string) => this.getChild('button', { hasText: text });
|
||||
}
|
||||
test('[C216341] Create a folder with name only', async ({ personalFiles }) => {
|
||||
await personalFiles.acaHeader.createButton.click();
|
||||
await personalFiles.matMenu.createFolder.click();
|
||||
await personalFiles.folderDialog.folderNameInputLocator.fill(randomFolderName);
|
||||
await personalFiles.folderDialog.createButton.click();
|
||||
|
||||
await personalFiles.dataTable.goThroughPagesLookingForRowWithName(randomFolderName);
|
||||
await expect(personalFiles.dataTable.getRowByName(randomFolderName)).toBeVisible();
|
||||
});
|
||||
});
|
15
e2e/playwright/actions/tsconfig.e2e.adf.json
Normal file
15
e2e/playwright/actions/tsconfig.e2e.adf.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "../../../tsconfig.adf.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../out-tsc/e2e",
|
||||
"baseUrl": "./",
|
||||
"module": "commonjs",
|
||||
"target": "es2017",
|
||||
"types": ["jasmine", "jasminewd2", "node"],
|
||||
"skipLibCheck": true,
|
||||
"paths": {
|
||||
"@alfresco/playwright-shared": ["../../../projects/aca-playwright-shared/src/index.ts"]
|
||||
}
|
||||
},
|
||||
"exclude": ["node_modules"]
|
||||
}
|
12
e2e/playwright/actions/tsconfig.e2e.json
Executable file
12
e2e/playwright/actions/tsconfig.e2e.json
Executable file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "../../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../out-tsc/e2e",
|
||||
"baseUrl": "./",
|
||||
"module": "commonjs",
|
||||
"target": "es2017",
|
||||
"types": ["jasmine", "jasminewd2", "node", "@playwright/test"],
|
||||
"skipLibCheck": true,
|
||||
},
|
||||
"exclude": ["node_modules"]
|
||||
}
|
26
e2e/playwright/folder-rules/.eslintrc.json
Normal file
26
e2e/playwright/folder-rules/.eslintrc.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"extends": "../../../.eslintrc.json",
|
||||
"ignorePatterns": [
|
||||
"!**/*"
|
||||
],
|
||||
"overrides": [
|
||||
{
|
||||
"files": [
|
||||
"*.ts"
|
||||
],
|
||||
"parserOptions": {
|
||||
"project": [
|
||||
"e2e/playwright/folder-rules/tsconfig.e2e.json"
|
||||
],
|
||||
"createDefaultProgram": true
|
||||
},
|
||||
"plugins": [
|
||||
"rxjs",
|
||||
"unicorn"
|
||||
],
|
||||
"rules": {
|
||||
"@typescript-eslint/no-floating-promises": "off"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
1
e2e/playwright/folder-rules/exclude.tests.json
Normal file
1
e2e/playwright/folder-rules/exclude.tests.json
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
@@ -22,16 +22,23 @@
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { BaseComponent } from './base.component';
|
||||
import { Page } from '@playwright/test';
|
||||
import { PlaywrightTestConfig } from '@playwright/test';
|
||||
import { CustomConfig, getGlobalConfig, getExcludedTestsRegExpArray } from '@alfresco/playwright-shared';
|
||||
import EXCLUDED_JSON from './exclude.tests.json';
|
||||
|
||||
export class AdfFolderDialogComponent extends BaseComponent {
|
||||
private static rootElement = 'adf-folder-dialog';
|
||||
const config: PlaywrightTestConfig<CustomConfig> = {
|
||||
...getGlobalConfig,
|
||||
|
||||
public folderNameInputLocator = this.getChild('[id="adf-folder-name-input"]');
|
||||
public createButton = this.getChild('[id="adf-folder-create-button"]');
|
||||
|
||||
constructor(page: Page) {
|
||||
super(page, AdfFolderDialogComponent.rootElement);
|
||||
grepInvert: getExcludedTestsRegExpArray(EXCLUDED_JSON, 'Folder Rules'),
|
||||
projects: [
|
||||
{
|
||||
name: 'Folder Rules',
|
||||
testDir: './src/tests',
|
||||
use: {
|
||||
users: ['admin']
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
export default config;
|
34
e2e/playwright/folder-rules/project.json
Normal file
34
e2e/playwright/folder-rules/project.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"$schema": "../../../node_modules/nx/schemas/project-schema.json",
|
||||
"name": "folder-rules-e2e",
|
||||
"sourceRoot": "e2e/playwright/folder-rules/src",
|
||||
"projectType": "application",
|
||||
"targets": {
|
||||
"e2e": {
|
||||
"executor": "nx:run-commands",
|
||||
"options": {
|
||||
"commands": [
|
||||
"npx playwright test --config=e2e/playwright/folder-rules/playwright.config.ts"
|
||||
]
|
||||
},
|
||||
"configurations": {
|
||||
"production": {
|
||||
"devServerTarget": "content-ce:serve:production"
|
||||
}
|
||||
}
|
||||
},
|
||||
"lint": {
|
||||
"executor": "@angular-eslint/builder:lint",
|
||||
"options": {
|
||||
"lintFilePatterns": [
|
||||
"e2e/**/*.ts",
|
||||
"e2e/**/*.html"
|
||||
],
|
||||
"cache": true,
|
||||
"cacheLocation": ".eslintcache",
|
||||
"ignorePath": ".eslintignore"
|
||||
},
|
||||
"outputs": ["{options.outputFile}"]
|
||||
}
|
||||
}
|
||||
}
|
@@ -22,10 +22,10 @@
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { test } from '../fixtures/page-initialization';
|
||||
import { ActionType } from '../page-objects/components/actions-dropdown.component';
|
||||
import { expect } from '@playwright/test';
|
||||
import { ActionType, getUserState, test } from '@alfresco/playwright-shared';
|
||||
|
||||
test.use({ storageState: getUserState('admin') });
|
||||
test.describe('Folder Rules Actions', () => {
|
||||
const randomFolderName = `playwright-folder-${(Math.random() + 1).toString(36).substring(6)}`;
|
||||
const randomRuleName = `playwright-rule-${(Math.random() + 1).toString(36).substring(6)}`;
|
||||
@@ -36,8 +36,8 @@ test.describe('Folder Rules Actions', () => {
|
||||
|
||||
let folderId: string;
|
||||
|
||||
test.beforeAll(async ({ apiClient }) => {
|
||||
const node = await apiClient.nodes.createNode('-my-', { name: randomFolderName, nodeType: 'cm:folder', relativePath: '/' });
|
||||
test.beforeAll(async ({ superAdminApiClient }) => {
|
||||
const node = await superAdminApiClient.nodes.createNode('-my-', { name: randomFolderName, nodeType: 'cm:folder', relativePath: '/' });
|
||||
folderId = node.entry.id;
|
||||
});
|
||||
|
||||
@@ -45,15 +45,15 @@ test.describe('Folder Rules Actions', () => {
|
||||
await personalFiles.navigate({ waitUntil: 'domcontentloaded' });
|
||||
});
|
||||
|
||||
test.afterAll(async ({ apiClient }) => {
|
||||
await apiClient.nodes.deleteNode(folderId);
|
||||
test.afterAll(async ({ superAdminApiClient }) => {
|
||||
await superAdminApiClient.nodes.deleteNode(folderId);
|
||||
});
|
||||
|
||||
test('Create a rule with actions', async ({ personalFiles, nodesPage }) => {
|
||||
test('[C691637] Create a rule with actions', async ({ personalFiles, nodesPage }) => {
|
||||
await personalFiles.dataTable.performActionFromExpandableMenu(randomFolderName, 'Manage rules');
|
||||
|
||||
await nodesPage.toolbar.clickCreateRuleButton();
|
||||
await nodesPage.manageRulesDialog.typeRuleName(randomRuleName);
|
||||
await nodesPage.manageRulesDialog.ruleNameInputLocator.type(randomRuleName);
|
||||
|
||||
await nodesPage.actionsDropdown.selectAction(ActionType.HideRecord, 0);
|
||||
await nodesPage.actionsDropdown.selectAction(ActionType.IncrementCounter, 1);
|
@@ -22,11 +22,10 @@
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { test } from '../fixtures/page-initialization';
|
||||
import { ActionType } from '../page-objects/components/actions-dropdown.component';
|
||||
import { Comparator, Field } from '../page-objects/components/conditions.component';
|
||||
import { expect } from '@playwright/test';
|
||||
import { ActionType, Comparator, Field, getUserState, test } from '@alfresco/playwright-shared';
|
||||
|
||||
test.use({ storageState: getUserState('admin') });
|
||||
test.describe('Folder Rules Conditions', () => {
|
||||
const randomFolderName = `playwright-folder-${(Math.random() + 1).toString(36).substring(6)}`;
|
||||
const randomRuleName = `playwright-rule-${(Math.random() + 1).toString(36).substring(6)}`;
|
||||
@@ -34,8 +33,8 @@ test.describe('Folder Rules Conditions', () => {
|
||||
|
||||
let folderId: string;
|
||||
|
||||
test.beforeAll(async ({ apiClient }) => {
|
||||
const node = await apiClient.nodes.createNode('-my-', { name: randomFolderName, nodeType: 'cm:folder', relativePath: '/' });
|
||||
test.beforeAll(async ({ superAdminApiClient }) => {
|
||||
const node = await superAdminApiClient.nodes.createNode('-my-', { name: randomFolderName, nodeType: 'cm:folder', relativePath: '/' });
|
||||
folderId = node.entry.id;
|
||||
});
|
||||
|
||||
@@ -43,18 +42,18 @@ test.describe('Folder Rules Conditions', () => {
|
||||
await personalFiles.navigate();
|
||||
});
|
||||
|
||||
test.afterAll(async ({ apiClient }) => {
|
||||
await apiClient.nodes.deleteNode(folderId);
|
||||
test.afterAll(async ({ superAdminApiClient }) => {
|
||||
await superAdminApiClient.nodes.deleteNode(folderId);
|
||||
});
|
||||
|
||||
test('Create a rule with condition', async ({ personalFiles, nodesPage }) => {
|
||||
test('[C691638] Create a rule with condition', async ({ personalFiles, nodesPage }) => {
|
||||
await personalFiles.dataTable.performActionFromExpandableMenu(randomFolderName, 'Manage rules');
|
||||
|
||||
await nodesPage.toolbar.clickCreateRuleButton();
|
||||
await nodesPage.manageRulesDialog.typeRuleName(randomRuleName);
|
||||
await nodesPage.manageRulesDialog.ruleNameInputLocator.type(randomRuleName);
|
||||
await nodesPage.conditionsDropdown.addCondition(Field.Size, Comparator.Equals, specialChars, 0);
|
||||
await nodesPage.conditionsDropdown.addCondition(Field.Size, Comparator.Equals, specialChars, 1);
|
||||
await nodesPage.conditionsDropdown.createConditionGroup();
|
||||
await nodesPage.conditionsDropdown.addConditionGroupButton.click();
|
||||
await nodesPage.conditionsDropdown.addConditionGroup(Field.Size, Comparator.Equals, specialChars, 0);
|
||||
await nodesPage.conditionsDropdown.addConditionGroup(Field.Size, Comparator.Equals, specialChars, 1);
|
||||
await nodesPage.actionsDropdown.selectAction(ActionType.IncrementCounter, 0);
|
@@ -22,29 +22,30 @@
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { test } from '../fixtures/page-initialization';
|
||||
import { getUserState, test } from '@alfresco/playwright-shared';
|
||||
|
||||
test.use({ storageState: getUserState('admin') });
|
||||
test.describe('Rules - Manage Rules', () => {
|
||||
const randomName = `playwright-folder-${(Math.random() + 1).toString(36).substring(6)}`;
|
||||
const randomRuleName = `playwright-rule-${(Math.random() + 1).toString(36).substring(6)}`;
|
||||
|
||||
let folderId: string;
|
||||
|
||||
test.beforeAll(async ({ apiClient }) => {
|
||||
const node = await apiClient.nodes.createNode('-my-', { name: randomName, nodeType: 'cm:folder', relativePath: '/' });
|
||||
test.beforeAll(async ({ superAdminApiClient }) => {
|
||||
const node = await superAdminApiClient.nodes.createNode('-my-', { name: randomName, nodeType: 'cm:folder', relativePath: '/' });
|
||||
folderId = node.entry.id;
|
||||
await apiClient.createRandomRule(folderId, randomRuleName);
|
||||
await superAdminApiClient.createRandomRule(folderId, randomRuleName);
|
||||
});
|
||||
|
||||
test.beforeEach(async ({ personalFiles }) => {
|
||||
await personalFiles.navigate();
|
||||
});
|
||||
|
||||
test.afterAll(async ({ apiClient }) => {
|
||||
await apiClient.nodes.deleteNode(folderId);
|
||||
test.afterAll(async ({ superAdminApiClient }) => {
|
||||
await superAdminApiClient.nodes.deleteNode(folderId);
|
||||
});
|
||||
|
||||
test('Disable an existing rule', async ({ personalFiles, nodesPage }) => {
|
||||
test('[C691651] Disable an existing rule', async ({ personalFiles, nodesPage }) => {
|
||||
await personalFiles.dataTable.performActionFromExpandableMenu(randomName, 'Manage rules');
|
||||
await nodesPage.manageRules.disableRuleToggle.click();
|
||||
});
|
15
e2e/playwright/folder-rules/tsconfig.e2e.adf.json
Normal file
15
e2e/playwright/folder-rules/tsconfig.e2e.adf.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "../../../tsconfig.adf.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../out-tsc/e2e",
|
||||
"baseUrl": "./",
|
||||
"module": "commonjs",
|
||||
"target": "es2017",
|
||||
"types": ["jasmine", "jasminewd2", "node"],
|
||||
"skipLibCheck": true,
|
||||
"paths": {
|
||||
"@alfresco/playwright-shared": ["../../../projects/aca-playwright-shared/src/index.ts"]
|
||||
}
|
||||
},
|
||||
"exclude": ["node_modules"]
|
||||
}
|
12
e2e/playwright/folder-rules/tsconfig.e2e.json
Executable file
12
e2e/playwright/folder-rules/tsconfig.e2e.json
Executable file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": "../../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../out-tsc/e2e",
|
||||
"baseUrl": "./",
|
||||
"module": "commonjs",
|
||||
"target": "es2017",
|
||||
"types": ["jasmine", "jasminewd2", "node", "@playwright/test"],
|
||||
"skipLibCheck": true,
|
||||
},
|
||||
"exclude": ["node_modules"]
|
||||
}
|
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"name": "playwright-shared",
|
||||
"version": "3.0.0",
|
||||
"main": "index.ts",
|
||||
"dependencies": {
|
||||
"tslib": "^2.0.0"
|
||||
}
|
||||
}
|
@@ -1,35 +0,0 @@
|
||||
/*!
|
||||
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* Alfresco Example Content Application
|
||||
*
|
||||
* This file is part of the Alfresco Example Content Application.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { BaseComponent } from './base.component';
|
||||
import { Page } from '@playwright/test';
|
||||
|
||||
export class AcaPageLayoutHeader extends BaseComponent {
|
||||
private static rootElement = 'adf-toolbar';
|
||||
public createButton = this.getChild('[id="app.toolbar.create"]');
|
||||
|
||||
constructor(page: Page) {
|
||||
super(page, AcaPageLayoutHeader.rootElement);
|
||||
}
|
||||
}
|
@@ -1,30 +0,0 @@
|
||||
/*!
|
||||
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
|
||||
*
|
||||
* Alfresco Example Content Application
|
||||
*
|
||||
* This file is part of the Alfresco Example Content Application.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
export * from './global-variables';
|
||||
export * from './playwright-base';
|
||||
export * from './components';
|
||||
export * from './components/dataTable';
|
||||
export * from './pages';
|
||||
export * from './pages/personal-files.page';
|
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"C589205": "https://alfresco.atlassian.net/browse/ACA-4353",
|
||||
"C261153": "https://alfresco.atlassian.net/browse/AAE-7517",
|
||||
"C306959": "https://alfresco.atlassian.net/browse/ACA-4620",
|
||||
"C213134": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
|
||||
"C286252": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
|
||||
"C284666": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
|
||||
"C286269": "temp, see https://alfresco.atlassian.net/browse/ACS-5189"
|
||||
}
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"extends": "../.eslintrc.json",
|
||||
"extends": "../../.eslintrc.json",
|
||||
"ignorePatterns": [
|
||||
"!**/*"
|
||||
],
|
||||
@@ -10,7 +10,7 @@
|
||||
],
|
||||
"parserOptions": {
|
||||
"project": [
|
||||
"e2e/tsconfig.e2e.json"
|
||||
"e2e/protractor/tsconfig.e2e.json"
|
||||
],
|
||||
"createDefaultProgram": true
|
||||
},
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "../node_modules/nx/schemas/project-schema.json",
|
||||
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
||||
"name": "app-e2e",
|
||||
"sourceRoot": "e2e",
|
||||
"projectType": "application",
|
29
e2e/protractor/protractor.excludes.json
Normal file
29
e2e/protractor/protractor.excludes.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"C589205": "https://alfresco.atlassian.net/browse/ACA-4353",
|
||||
"C261153": "https://alfresco.atlassian.net/browse/AAE-7517",
|
||||
"C306959": "https://alfresco.atlassian.net/browse/ACA-4620",
|
||||
"C213134": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
|
||||
"C286252": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
|
||||
"C284666": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
|
||||
"C286269": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
|
||||
"C279186": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4986",
|
||||
"C279230": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4986",
|
||||
"C279231": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4986",
|
||||
"C279232": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4986",
|
||||
"C279233": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4986",
|
||||
"C279191": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
|
||||
"C279192": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
|
||||
"C279193": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
|
||||
"C279195": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
|
||||
"C280051": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
|
||||
"C280052": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
|
||||
"C279188": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
|
||||
"C308042": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
|
||||
"C279219": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4985",
|
||||
"C279221": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4985",
|
||||
"C279220": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4985",
|
||||
"C325006": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4985",
|
||||
"C286327": "https://alfresco.atlassian.net/browse/PRODSEC-6575",
|
||||
"C286332": "https://alfresco.atlassian.net/browse/PRODSEC-6575",
|
||||
"C286333": "https://alfresco.atlassian.net/browse/PRODSEC-6575"
|
||||
}
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "../../extension.schema.json",
|
||||
"$schema": "../../../../extension.schema.json",
|
||||
"$id": "app.core",
|
||||
"$name": "app.core",
|
||||
"$version": "1.0.0",
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "../../extension.schema.json",
|
||||
"$schema": "../../../../extension.schema.json",
|
||||
"$id": "app.core",
|
||||
"$name": "app.core",
|
||||
"$version": "1.0.0",
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "../../extension.schema.json",
|
||||
"$schema": "../../../../extension.schema.json",
|
||||
"$id": "app.core",
|
||||
"$name": "app.core",
|
||||
"$version": "1.0.0",
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "../../extension.schema.json",
|
||||
"$schema": "../../../../extension.schema.json",
|
||||
"$id": "app.core",
|
||||
"$name": "app.core",
|
||||
"$version": "1.0.0",
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "../../extension.schema.json",
|
||||
"$schema": "../../../../extension.schema.json",
|
||||
"$id": "app.core",
|
||||
"$name": "app.core",
|
||||
"$version": "1.0.0",
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "../../extension.schema.json",
|
||||
"$schema": "../../../../extension.schema.json",
|
||||
"$id": "app.core",
|
||||
"$name": "app.core",
|
||||
"$version": "1.0.0",
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"$schema": "../../extension.schema.json",
|
||||
"$schema": "../../../../extension.schema.json",
|
||||
"$id": "app.core",
|
||||
"$name": "app.core",
|
||||
"$version": "1.0.0",
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
@@ -136,6 +136,7 @@ describe('Destination picker dialog : ', () => {
|
||||
|
||||
afterEach(async () => {
|
||||
await page.closeOpenDialogs();
|
||||
await page.dataTable.clearSelection();
|
||||
});
|
||||
|
||||
describe('general', () => {
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user