--- title: "Tests" weight: 90 geekdocRepo: https://github.com/owncloud/ocis geekdocEditPath: edit/master/docs/services/settings geekdocFilePath: tests.md --- {{< toc >}} ## Requirements You need a working installation of [the Go programming language](https://golang.org/), [the Node runtime](https://nodejs.org/) and [the pnpm package manager](https://pnpm.io/) installed to run the acceptance tests. You may also want to use [Docker](https://www.docker.com/) to start the necessary services in their respective containers. ## Acceptance Tests Make sure you've cloned the [web frontend repo](https://github.com/owncloud/web/) and the [infinite scale repo](https://github.com/owncloud/ocis/) next to each other. If your file/folder structure is different, you'll have to change the paths below accordingly. ### In the web repo #### **Optional:** Build web to test local changes Install dependencies and bundle the frontend with a watcher by running ```bash pnpm install && pnpm build:w ``` If you skip the step above, the currently bundled frontend from the oCIS binary will be used. #### Dockerized acceptance test services Start the necessary acceptance test services by using Docker (Compose): ```bash docker compose up selenium middleware-ocis vnc ``` ### In the oCIS repo #### **Optional:** Build settings UI to test local changes Navigate into the settings service via `cd ../settings/` and install dependencies and build the bundled settings UI with a watcher by running ```bash pnpm install && pnpm watch ``` #### Start oCIS from binary Navigate into the oCIS directory inside the oCIS repository and build the oCIS binary by running ```bash make clean build ``` Then, start oCIS from the binary via ```bash ocis init OCIS_URL=https://host.docker.internal:9200 OCIS_INSECURE=true PROXY_ENABLE_BASIC_AUTH=true WEB_UI_CONFIG=../../web/dev/docker/ocis.web.config.json ./bin/ocis server ``` If you've built the web bundle locally in its repository, you also need to reference the bundle output in the command above: `WEB_ASSET_PATH=../../web/dist` If you've built the settings UI bundle locally, you also need to reference the bundle output in the command above: `SETTINGS_ASSET_PATH=../settings/assets/` #### Run settings acceptance tests If you want visual feedback on the test run, visit http://host.docker.internal:6080/ in your browser and connect to the VNC client. Navigate into the settings service via `cd ../settings/` and start the acceptance tests by running ```bash SERVER_HOST=https://host.docker.internal:9200 BACKEND_HOST=https://host.docker.internal:9200 RUN_ON_OCIS=true NODE_TLS_REJECT_UNAUTHORIZED=0 WEB_PATH=../../web WEB_UI_CONFIG=../../web/tests/drone/config-ocis.json MIDDLEWARE_HOST=http://host.docker.internal:3000 ./ui/tests/run-acceptance-test.sh ./ui/tests/acceptance/features/ ```