cy-spok

Wrapper for spok assertion

Usage no npm install needed!

<script type="module">
  import cySpok from 'https://cdn.skypack.dev/cy-spok';
</script>

README

cy-spok renovate-app badge cypress version

Playing with spok inside Cypress test

CI status
lint Lint status
badges Badges status
cy-spok GH Action status
cy-spok-example cy-spok-example status

Install

$ npm i -D cy-spok

Use

See spok docs

// in your Cypress spec file
import spok from 'cy-spok'

const object = {
  one: 1,
  two: 2,
  three: 3,
  four: 4,
  helloWorld: 'hello world',
  anyNum: 999,
  anotherNum: 888,
  anArray: [1, 2],
  anotherArray: [1, 2, 3],
  anObject: {},
}

// using Spok
// https://github.com/thlorenz/spok#readme
cy.wrap(object, { timeout: 2000 }).should(
  spok({
    $topic: 'spok-example', // optional
    one: spok.ge(1),
    two: 2,
    three: spok.range(2, 6),
    four: spok.lt(5),
    helloWorld: spok.startsWith('hello'),
    anyNum: spok.type('number'),
    anotherNum: spok.number,
    anArray: spok.array,
    anObject: spok.ne(undefined),
  }),
)

See cypress/integration/spec.js here and in the cy-spok-example repo.

Spok in action

vs deep.equal

Spok prints a lot more information when using it compared to deep.equal. Note that Spok is a subset, not strict value equality.

deep.equal vs spok for complex objects

See deep-equal-spec.js