MCPcopy
hub / github.com/oblador/loki

github.com/oblador/loki @test99999.9.9 sqlite

repository ↗ · DeepWiki ↗ · release test99999.9.9 ↗
2,699 symbols 5,182 edges 82 files 202 documented · 7%
README

Loki

Visual Regression Testing for Storybook

GitHub license Travis Node.js version npm version npm downloads

Loki

Rationale

There are a few visual regression tools for the web, but most either cannot be run headless or use phantomjs which is deprecated and a browser nobody is actually using. They usually also require you to maintain fixtures. With react-native it's now possible to target multiple platforms with a single code base, but there's no single tool to test all to my knowledge.

Loki aims to have easy setup, no to low maintenance cost, reproducible tests independent of which OS they are run on, runnable on CI and support all platforms storybook does.

Supported platforms

  • Chrome in docker (recommended)
  • Local Chrome application
  • iOS simulator
  • Android emulator

Prerequsites

  • Node 7.6 or higher

Optional dependencies

  • GraphicsMagick for gm diffing engine, brew install graphicsmagick
  • Docker for the chrome.docker target.
  • Chrome 59+ for the chrome.app target, brew cask install google-chrome-canary.

Installation

yarn add loki --dev
yarn loki init

Workflow

Loki will not start any servers for you, so ensure storybook and any simulator/emulator is up and running before running tests.

  1. Start storybook server yarn storybook
  2. Add first set of reference files yarn loki update
  3. Do some changes to your components
  4. Test against references yarn loki test
  5. Review changes in diff folder
  6. Approve changes and update references yarn loki approve

Documentation

Examples

License

MIT License. © Joel Arvidsson 2017

Core symbols most depended-on inside this repo

_interopRequireDefault
called by 283
src/targets/chrome/fixtures/storybook-dynamic/static/preview.bundle.js
_interopRequireDefault
called by 263
src/targets/chrome/fixtures/storybook-static/static/preview.95b11bf6580f25e2e29c.bundle.js
_interopRequireDefault
called by 238
src/targets/chrome/fixtures/storybook-unconfigured/static/preview.970720654206dd0179e4.bundle.js
warning
called by 112
src/targets/chrome/fixtures/storybook-dynamic/static/preview.bundle.js
invariant
called by 107
src/targets/chrome/fixtures/storybook-dynamic/static/preview.bundle.js
defineProperties
called by 66
src/targets/chrome/fixtures/storybook-dynamic/static/preview.bundle.js
defineProperties
called by 66
src/targets/chrome/fixtures/storybook-static/static/preview.95b11bf6580f25e2e29c.bundle.js
defineProperties
called by 60
src/targets/chrome/fixtures/storybook-unconfigured/static/preview.970720654206dd0179e4.bundle.js

Shape

Function 2,669
Method 16
Class 14

Languages

TypeScript100%
Java1%

Modules by API surface

src/targets/chrome/fixtures/storybook-dynamic/static/preview.bundle.js936 symbols
src/targets/chrome/fixtures/storybook-static/static/preview.95b11bf6580f25e2e29c.bundle.js806 symbols
src/targets/chrome/fixtures/storybook-unconfigured/static/preview.970720654206dd0179e4.bundle.js762 symbols
src/targets/native/create-websocket-target.js14 symbols
src/targets/chrome/create-chrome-target.js13 symbols
src/targets/native/configure-storybook.js10 symbols
src/targets/chrome/docker.js10 symbols
src/commands/test/run-tests.js10 symbols
src/errors.js8 symbols
src/config/project-package.js7 symbols
src/targets/decorate-storybook.js6 symbols
examples/react-native/android/app/src/main/java/com/loki/MainApplication.java6 symbols

Dependencies from manifests, versioned

@storybook/addon-actions5.0.0 · 1×
@storybook/addon-links5.0.0 · 1×
@storybook/addons5.0.0 · 1×
@storybook/cli5.0.0 · 1×
@storybook/react5.0.0 · 1×
@storybook/react-native3.2.13 · 1×
babel-eslint10.0.1 · 1×
babel-jest23.6.0 · 1×
babel-loader8.0.5 · 1×
babel-preset-react-native4.0.0 · 1×
chalk2.4.1 · 1×
chrome-launcher0.10.5 · 1×

For agents

$ claude mcp add loki \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact