@nextcloud/cypress
TypeScript icon, indicating that this package has built-in type declarations

1.0.0-beta.14 • Public • Published

@nextcloud/cypress

REUSE status npm last version Codecov

Nextcloud cypress helpers for Nextcloud apps and libraries

New package available

@nextcloud/e2e-test-server is a more generic version of @nextcloud/cypress that will work nicely with both cypress and playwright.

It will eventually superseed @nextcloud/cypress. When starting a new project we recommend using @nextcloud/e2e-test-server.

Commands

You can import individual commands or all at once You can find the list of all available commands here

// cypress/support/commands.js
import { addCommands } from '@nextcloud/cypress'

addCommands()
// cypress/support/commands.js
import { getNc } from '@nextcloud/cypress/commands'

Cypress.Commands.add('getNc', getNc)

Selectors

You can find the list of all available selectors here

import { UploadPicker as UploadPickerComponent} from '../../dist/index.js'
import { UploadPicker, UploadPickerInput } from '@nextcloud/cypress/selectors'

describe('UploadPicker rendering', () => {
	it('Renders default UploadPicker', () => {
		cy.mount(UploadPickerComponent)
		cy.getNc(UploadPicker).should('exist')
			.should('have.class', 'upload-picker')
		cy.getNc(UploadPickerInput).should('exist')
	})
})

Starting Nextcloud Docker container

It is possible to automatically start a docker container providing a Nextcloud instance for testing. Therefor adjust your cypress.config.ts (or .js):

import { configureNextcloud,  startNextcloud,  stopNextcloud, waitOnNextcloud } from '@nextcloud/cypress/docker'

export default defineConfig({
// ...
	e2e: {
		// other configuration

		setupNodeEvents(on, config) {
			// Remove container after run
			on('after:run', () => {
				stopNextcloud()
			})

			// starting Nextcloud testing container with specified server branch
			return startNextcloud(process.env.BRANCH)
				.then((ip) => {
					// Setting container's IP as base Url
					config.baseUrl = `http://${ip}/index.php`
					return ip
				})
				.then(waitOnNextcloud)
				// configure Nextcloud, also install and enable the `viewer` app
				.then(() => configureNextcloud(['viewer']))
				.then(() => {
					return config
				})
		},
	},
})

Package Sidebar

Install

npm i @nextcloud/cypress

Weekly Downloads

3,718

Version

1.0.0-beta.14

License

AGPL-3.0-or-later

Unpacked Size

228 kB

Total Files

28

Last publish

Collaborators

  • icewind1991
  • skjnldsv
  • pytal
  • christophwurst
  • juliushaertl
  • nickvergessen
  • artonge
  • marcoambrosinii
  • st3iny
  • gretadoci
  • max-nextcloud
  • mejo-
  • susnux