diff options
Diffstat (limited to 'cypress/support/component.ts')
-rw-r--r-- | cypress/support/component.ts | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/cypress/support/component.ts b/cypress/support/component.ts new file mode 100644 index 00000000000..853609bb4dd --- /dev/null +++ b/cypress/support/component.ts @@ -0,0 +1,45 @@ +/** + * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import '@testing-library/cypress/add-commands' +import 'cypress-axe' + +// styles +import '../../apps/theming/css/default.css' +import '../../core/css/server.css' + +/* eslint-disable */ +import { mount } from '@cypress/vue2' + +Cypress.Commands.add('mount', (component, options = {}) => { + // Setup options object + options.extensions = options.extensions || {} + options.extensions.plugins = options.extensions.plugins || [] + options.extensions.components = options.extensions.components || {} + + return mount(component, options) +}) + +Cypress.Commands.add('mockInitialState', (app: string, key: string, value: unknown) => { + cy.document().then(($document) => { + const input = $document.createElement('input') + input.setAttribute('type', 'hidden') + input.setAttribute('id', `initial-state-${app}-${key}`) + input.setAttribute('value', btoa(JSON.stringify(value))) + $document.body.appendChild(input) + }) +}) + +Cypress.Commands.add('unmockInitialState', (app?: string, key?: string) => { + cy.window().then(($window) => { + // @ts-expect-error internal value + delete $window._nc_initial_state + }) + + cy.document().then(($document) => { + $document.querySelectorAll('body > input[type="hidden"]' + (app ? `[id="initial-state-${app}-${key}"]` : '')) + .forEach((node) => $document.body.removeChild(node)) + }) +}) |