aboutsummaryrefslogtreecommitdiffstats
path: root/cypress/support/component.ts
diff options
context:
space:
mode:
Diffstat (limited to 'cypress/support/component.ts')
-rw-r--r--cypress/support/component.ts45
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))
+ })
+})