@contentful/integration-test-utils
TypeScript icon, indicating that this package has built-in type declarations

2.0.1 • Public • Published

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"
}

⚠️ cleanUpSpaces initializes a CMA client and, for that, expects to find an environment variable called CONTENTFUL_INTEGRATION_TEST_CMA_TOKEN containing a functioning Contentful Management Token.

⚠️ It will delete all spaces connected to that token which match the naming pattern (starting with '%').

Readme

Keywords

none

Package Sidebar

Install

npm i @contentful/integration-test-utils

Weekly Downloads

75

Version

2.0.1

License

MIT

Unpacked Size

278 kB

Total Files

20

Last publish

Collaborators

  • michaelpearce
  • it-internal
  • whydah-gally
  • contentful-ecosystem