Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

ts-graphviz/jest-graphviz

Open more actions menu

Repository files navigation

GitHub Action npm version License: MIT code style: prettier Test Coverage

jest-graphviz

A plugin for jest that supports graphviz integration.

Installation

The plugin can then be installed using npm:

NPM

yarn

yarn add -D jest-graphviz

npm

npm install --save-dev jest-graphviz

Configuration

Import jest-graphviz with the script specified in setupFilesAfterEnv.

Example

jest.config.js

module.exports = {
  preset: 'ts-jest',
  testEnvironment: 'node',
  verbose: true,
  collectCoverage: true,
  setupFilesAfterEnv: [
    // Add this.
    '<rootDir>/config/jest/setup-jest.ts',
  ],
};

config/jest/setup-jest.ts

import 'jest-graphviz';

Requirement

This extension requires Graphviz. If you don't have it installed, install it herehere.

Usage

toBeValidDot

describe('toBeValidDot test', () => {
  it('matcher works', () => {
    const dot = 'digraph g { a -> b; }';
    expect(dot).toBeValidDot();
  });

  it('invalid dot', () => {
    const dot = 'invalid';
    expect(dot).not.toBeValidDot();
  });
});

toBeValidDotAndMatchSnapshot

describe('toBeValidDotAndMatchSnapshot test', () => {
  test('matcher works', () => {
    const dot = 'digraph g { a -> b; }';
    expect(dot).toBeValidDotAndMatchSnapshot();
  });
});

toMatchDotJsonSnapshot

describe('toMatchDotJsonSnapshot test', () => {
  test('matcher works', () => {
    const dot = 'digraph g { a -> b; }';
    expect(dot).toMatchDotJsonSnapshot();
  });
});

It depends on the JSON output format added in Graphviz 2.40.0.

See Also

Graphviz-dot Test and Integration

License

This software is released under the MIT License, see LICENSE.

Author

kamiazya(Yuki Yamazaki)

ko-fi

Morty Proxy This is a proxified and sanitized view of the page, visit original site.