@contentful/integration-test-utils
v2.0.1
Published
Utilities for Contentful integration tests
Downloads
716
Keywords
Readme
Contentful Integration Test Utils
About
This repository contains utility functions for integration testing of some of Contentful's open source projects.
It supports ad-hoc space creation and deletion, environment creation as well as a test space clean-up function which can be run periodically or ad hoc.
Pre-requisites
Requires at least Node 14
Installation
Using npm:
npm install @contentful/integration-test-utils
Using yarn:
yarn add @contentful/integration-test-utils
Usage
const testUtils = require('@contentful/integration-test-utils')
API
Create Test Space
Creates a test space with strict naming rules. All space names start with '%'.
The space name will be built like this: %${language} ${repo} ${testSuiteName}
.
Its length must be less than 30 characters.
// returns an empty space with space '%JS CMA Entry API';
const testSpace = await testUtils.createTestSpace({
client,
organizationId,
repo: 'CMA',
language: 'JS',
testSuiteName: 'Entry API',
})
Create Test Environment
Creates a test environment in the provided space and waits for it to be ready (timeout: 5 minutes). The length of the environment name must be less than 40 characters.
const testEnvironment = await testUtils.createTestEnvironment(testSpace, 'some-test-env-name')
Delete Test Space
Deletes the space with the space name provided.
await testUtils.deleteSpace(client, '%JS CMA Entry API')
Clean up Test Spaces
Deletes spaces whose names start with the prefix %
and which were created prior to a specific threshold time. The threshold defaults to one hour (60 * 60 * 1000 ms).
The function has a dryRun
option, which lists all spaces to be deleted.
// Deletes all spaces starting with '%'
// that have been created more than one hour (default threshold) ago
await testUtils.cleanUpTestSpaces()
// With options
await testUtils.cleanUpTestSpaces({
threshold: 60 * 1000, // changes the threshold to one minute
dryRun: true // lists all spaces starting with '%' without deleting them
})
Usage: The test cleaner can be used in different ways, according to need.
- In your code, e.g. inside an
after()
within your test suite
after(async () => {
await testUtils.cleanUpTestSpaces()
})
- As a bin script (
clean-up-test-spaces
) in a pipeline or manually
./bin/clean-up-test-spaces
- As a script to your
package.json
"scripts":{
"clean-up-test-spaces": "clean-up-test-spaces"
}
:warning:
cleanUpSpaces
initializes a CMA client and, for that, expects to find an environment variable calledCONTENTFUL_INTEGRATION_TEST_CMA_TOKEN
containing a functioning Contentful Management Token.
:warning: It will delete all spaces connected to that token which match the naming pattern (starting with '%').