Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xpol/cypress-template-fixtures
Allow using {{ENVIRONMENT_VARIABLE}} in Cypress fixture files.
https://github.com/xpol/cypress-template-fixtures
cypress environment-variables fixtures templates
Last synced: 13 days ago
JSON representation
Allow using {{ENVIRONMENT_VARIABLE}} in Cypress fixture files.
- Host: GitHub
- URL: https://github.com/xpol/cypress-template-fixtures
- Owner: xpol
- License: mit
- Created: 2021-04-07T06:45:19.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-12-02T09:46:12.000Z (about 2 years ago)
- Last Synced: 2024-12-24T23:07:02.840Z (15 days ago)
- Topics: cypress, environment-variables, fixtures, templates
- Language: JavaScript
- Homepage:
- Size: 74.2 KB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Cypress Template Fixtures
Allow using `{{ENVIRONMENT_VARIABLE}}` in Cypress fixture files.
## Setup
Install this package by run `npm i -D cypress-template-fixtures` or `yarn add -D cypress-template-fixtures`.
Add `require('cypress-template-fixtures')(on, config);` in the `cypress/plugins/index.js`.
```js
module.exports = (on, config) => {
require('cypress-template-fixtures')(on, config); // Add this line
return config;
};
```Also add `cypress/fixtures.out/` into ignore list of you VCS. E.g. the `.gitignore` for Git.
## Write Fixtures with variables
When writing a fixture data in `cypress/fixtures`, you can use environment variables.
Put the environment variable name in between `{{` and `}}`. Eg. `{{NODE_ENV}}` `{{MY_VARIABLE}}`.## Provide Environment Variables
Please refer to the [doc here](https://docs.cypress.io/guides/guides/environment-variables).
1. From `env` field in `cypress.json`, don't have to use `CYPRESS_` or `cypress_` prefixes.
2. From `cypress.env.json`, don't have to use `CYPRESS_` or `cypress_` prefixes.
3. From command line or system environment variables, **have to** use `CYPRESS_` or `cypress_` prefixes.
4. Using [cypress-dotenv](https://github.com/morficus/cypress-dotenv), **have to** use `CYPRESS_` or `cypress_` prefixes unless [set the `all` parameter to true](https://github.com/morficus/cypress-dotenv#options).Note, if you use cypress-dotenv make sure enable it before cypress-template-fixtures.
```js
module.exports = (on, config) => {
config = require('cypress-dotenv')(config); // load .env before cypress-template-fixtures
require('cypress-template-fixtures')(on, config);
return config
};
```## How it works
1. When running `cypress run` or `cypress open` this plugin will copy all fixtures in `cypress/fixtures` into `cypress/fixtures.out` with sub-folders structure preserved.
2. When copying text fixtures (`.json`, `.js`, `.coffee`, `.html`, `.txt`, `.csv`, `.yml`) the variables like `{{MY_VARIABLE}}` will be replaced with the related environment variable value like `MY_VARIABLE`.
3. This plugin will also change the `fixturesFolder` config to `cypress/fixtures.out` so that cypress will use the fixtures there.## Limitations
For simplicity, change the fixtures after `cypress open` may not regenerated automatically, you should rerun `cypress open`.