@shelf/jest-gremlin

2.0.0 • Public • Published

jest-gremlin CircleCI npm (scoped)

Jest preset to run Gremlin server before tests

Usage

1. Have installed docker-compatible container engine!

This plugin tested with Docker and Podman, but it can work with any container engine that supports Docker CLI commands.

2. Install

$ yarn add @shelf/jest-gremlin --dev

3. Create jest.config.js

module.exports = {
  preset: '@shelf/jest-gremlin',
};

If you have a custom jest.config.js make sure you remove testEnvironment property, otherwise it will conflict with the preset.

4. Create jest-gremlin-config.js

import cwd from 'cwd';

module.exports = {
  port: 8182,
  protocol: 'ws',
  imageName: 'tinkerpop/gremlin-server', // or your custom prebuilt image
  imagePort: 8182, // port on which gremlin server is running inside the container
  containerName: 'gremlin-server', // or your custom container name that would be spin up
  maxTries: 10, // how many times to try to connect to gremlin server ()
  triesInterval: 1000, // interval between tries
  containerEngine: 'docker', // or 'podman' if you use podman - used in cli commands to start/stop container
};

5. PROFIT! Write tests

it();

Monorepo Support

By default the jest-gremlin-config.js is read from cwd directory, but this might not be suitable for monorepos with nested jest projects with nested jest.config.* files nested in subdirectories.

If your jest-gremlin-config.js file is not located at {cwd}/jest-gremlin-config.js or you are using nested jest projects, you can define the environment variable JEST_GREMLIN_CONFIG with the absolute path of the respective jest-gremlin-config.js file.

Example Using JEST_GREMLIN_CONFIG in nested project

// src/nested/project/jest.config.js
const path = require('path');

// Define path of project level config - extension not required as file will be imported
// via `require(process.env.JEST_GREMLIN_CONFIG)`
process.env.JEST_GREMLIN_CONFIG = path.resolve(__dirname, './jest-gremlin-config');

module.exports = {
  preset: '@shelf/jest-gremlin',
  displayName: 'nested-project',
};

See Also

Publish

$ git checkout master
$ yarn version
$ yarn publish
$ git push origin master --tags

License

MIT © Shelf

Package Sidebar

Install

npm i @shelf/jest-gremlin

Weekly Downloads

49

Version

2.0.0

License

MIT

Unpacked Size

10.9 kB

Total Files

17

Last publish

Collaborators

  • el_scrambone
  • yuliiakovalchuk
  • anton-russo
  • gemshelf
  • mykola.khytra
  • hartzler
  • olesiamuller
  • vladgolubev
  • hmelenok
  • knupman
  • maaraanas
  • terret
  • chapelskyi.slavik
  • ahavrysh
  • pihorb
  • i5adovyi
  • irynah
  • diana.kryskuv
  • andy.raven
  • rafler
  • sskalp88
  • mykhailo.yatsko
  • demiansua
  • yuriil
  • vadymaslovskyi
  • ktv18
  • drews_abuse
  • rostyslav-horytskyi
  • whodeen
  • andriisermiahin
  • mpushkin
  • ss1l
  • oles.zadorozhnyy
  • maksym.hayovets
  • dima-bond
  • duch0416
  • kristina.zhak
  • oleksii.dymnich
  • domovoj
  • batovpavlo
  • mateuszgajdashelf
  • bodyaflesh
  • dmytro.harazdovskiy
  • kchlon
  • mmazurowski
  • vladmarchuk
  • petro.bodnarchuk
  • marianna-milovanova
  • kateryna-kochina
  • andrii-nastenko
  • maksym.tarnavskyi
  • bogdan.kolesnyk
  • andrew214
  • monopotan
  • maciej.orlowski
  • yaroslav_korolchuk