diff options
author | Louis Chemineau <louis@chmn.me> | 2024-11-25 12:42:51 +0100 |
---|---|---|
committer | Louis Chemineau <louis@chmn.me> | 2024-11-25 16:22:09 +0100 |
commit | ebda7b45f64bbdb74b8e664f15c0f876d1a45117 (patch) | |
tree | bdc62596da86064767bd6a6c4e4d5468493ae04f /cypress/support | |
parent | 3822db51742eb12c67b525cab80ec0699e011684 (diff) | |
download | nextcloud-server-ebda7b45f64bbdb74b8e664f15c0f876d1a45117.tar.gz nextcloud-server-ebda7b45f64bbdb74b8e664f15c0f876d1a45117.zip |
chore: Update @nextcloud/cypress to v1.0.0-beta.11artonge/chore/update_nc_cypress_beta.11
Signed-off-by: Louis Chemineau <louis@chmn.me>
Diffstat (limited to 'cypress/support')
-rw-r--r-- | cypress/support/commands.ts | 34 | ||||
-rw-r--r-- | cypress/support/commonUtils.ts | 22 | ||||
-rw-r--r-- | cypress/support/cypress-e2e.d.ts | 20 |
3 files changed, 20 insertions, 56 deletions
diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts index 28bd335eecf..410a970f77b 100644 --- a/cypress/support/commands.ts +++ b/cypress/support/commands.ts @@ -216,41 +216,9 @@ Cypress.Commands.add('resetUserTheming', (user?: User) => { } }) -Cypress.Commands.add('runOccCommand', (command: string, options?: Partial<Cypress.ExecOptions>) => { - const env = Object.entries(options?.env ?? {}).map(([name, value]) => `-e '${name}=${value}'`).join(' ') - return cy.exec(`docker exec --user www-data ${env} nextcloud-cypress-tests-server php ./occ ${command}`, options) -}) - Cypress.Commands.add('userFileExists', (user: string, path: string) => { user.replaceAll('"', '\\"') path.replaceAll('"', '\\"').replaceAll(/^\/+/gm, '') - return cy.exec(`docker exec --user www-data nextcloud-cypress-tests-server stat --printf="%s" "data/${user}/files/${path}"`, { failOnNonZeroExit: true }) + return cy.runCommand(`stat --printf="%s" "data/${user}/files/${path}"`, { failOnNonZeroExit: true }) .then((exec) => Number.parseInt(exec.stdout || '0')) }) - -Cypress.Commands.add('backupDB', (): Cypress.Chainable<string> => { - const randomString = Math.random().toString(36).substring(7) - cy.exec(`docker exec --user www-data nextcloud-cypress-tests-server cp /var/www/html/data/owncloud.db /var/www/html/data/owncloud.db-${randomString}`) - cy.log(`Created snapshot ${randomString}`) - return cy.wrap(randomString) -}) - -Cypress.Commands.add('restoreDB', (snapshot: string = 'init') => { - cy.exec(`docker exec --user www-data nextcloud-cypress-tests-server cp /var/www/html/data/owncloud.db-${snapshot} /var/www/html/data/owncloud.db`) - cy.log(`Restored snapshot ${snapshot}`) -}) - -Cypress.Commands.add('backupData', (users: string[] = ['admin']) => { - const snapshot = Math.random().toString(36).substring(7) - const toBackup = users.map((user) => `'${user.replaceAll('\\', '').replaceAll('\'', '\\\'')}'`).join(' ') - cy.exec(`docker exec --user www-data rm /var/www/html/data/data-${snapshot}.tar`, { failOnNonZeroExit: false }) - cy.exec(`docker exec --user www-data --workdir /var/www/html/data nextcloud-cypress-tests-server tar cf /var/www/html/data/data-${snapshot}.tar ${toBackup}`) - return cy.wrap(snapshot as string) -}) - -Cypress.Commands.add('restoreData', (snapshot?: string) => { - snapshot = snapshot ?? 'init' - snapshot.replaceAll('\\', '').replaceAll('"', '\\"') - cy.exec(`docker exec --user www-data --workdir /var/www/html/data nextcloud-cypress-tests-server rm -vfr $(tar --exclude='*/*' -tf '/var/www/html/data/data-${snapshot}.tar')`) - cy.exec(`docker exec --user www-data --workdir /var/www/html/data nextcloud-cypress-tests-server tar -xf '/var/www/html/data/data-${snapshot}.tar'`) -}) diff --git a/cypress/support/commonUtils.ts b/cypress/support/commonUtils.ts index a00a6a4c740..8d02ace151b 100644 --- a/cypress/support/commonUtils.ts +++ b/cypress/support/commonUtils.ts @@ -3,6 +3,8 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ +import { basename } from 'path' + /** * Get the header navigation bar */ @@ -49,8 +51,12 @@ export function installTestApp() { cy.runOccCommand('-V').then((output) => { const version = output.stdout.match(/(\d\d+)\.\d+\.\d+/)?.[1] cy.wrap(version).should('not.be.undefined') - cy.exec(`docker cp '${testAppPath}' nextcloud-cypress-tests-server:/var/www/html/apps`, { log: true }) - cy.exec(`docker exec nextcloud-cypress-tests-server sed -i -e 's|-version="[0-9]\\+|-version="${version}|g' apps/testapp/appinfo/info.xml`) + getContainerName() + .then(containerName => { + cy.exec(`docker cp '${testAppPath}' ${containerName}:/var/www/html/apps`, { log: true }) + cy.exec(`docker exec --workdir /var/www/html ${containerName} chown -R www-data:www-data /var/www/html/apps/testapp`) + }) + cy.runCommand(`sed -i -e 's|-version=\\"[0-9]\\+|-version=\\"${version}|g' apps/testapp/appinfo/info.xml`) cy.runOccCommand('app:enable --force testapp') }) } @@ -60,5 +66,15 @@ export function installTestApp() { */ export function uninstallTestApp() { cy.runOccCommand('app:remove testapp', { failOnNonZeroExit: false }) - cy.exec('docker exec nextcloud-cypress-tests-server rm -fr apps/testapp/appinfo/info.xml') + cy.runCommand('rm -fr apps/testapp/appinfo/info.xml') +} + +/** + * + */ +export function getContainerName(): Cypress.Chainable<string> { + return cy.exec('pwd') + .then(({ stdout }) => { + return cy.wrap(`nextcloud-cypress-tests_${basename(stdout).replace(' ', '')}`) + }) } diff --git a/cypress/support/cypress-e2e.d.ts b/cypress/support/cypress-e2e.d.ts index 13b181e6db6..afe93077d6a 100644 --- a/cypress/support/cypress-e2e.d.ts +++ b/cypress/support/cypress-e2e.d.ts @@ -53,27 +53,7 @@ declare global { */ resetUserTheming(user?: User): Cypress.Chainable<void>, - /** - * Run an occ command in the docker container. - */ - runOccCommand(command: string, options?: Partial<Cypress.ExecOptions>): Cypress.Chainable<Cypress.Exec>, - userFileExists(user: string, path: string): Cypress.Chainable<number> - - /** - * Create a snapshot of the current database - */ - backupDB(): Cypress.Chainable<string>, - - /** - * Restore a snapshot of the database - * Default is the post-setup state - */ - restoreDB(snapshot?: string): Cypress.Chainable - - backupData(users?: string[]): Cypress.Chainable<string> - - restoreData(snapshot?: string): Cypress.Chainable } } } |