Skip to content

Integrating with Vitest

Vitest is a blazing fast unit test framework powered by Vite, optimized for modern JavaScript and TypeScript projects

Step CI runner can be used directly in JavaScript testing tools

Preparation

Put your workflows under tests/

Install @stepci/runner dependency

npm install --save-dev @stepci/runner

Using in tests

Example: Run workflow from file

js
import { expect, it } from 'vitest'
import { runFromFile } from '@stepci/runner'

it('Check Response Status', async () => {
  const { result } = await runFromFile(new URL('tests/workflow.yml', import.meta.url))
  expect(result.passed).toBe(true)
})

Example: Run workflow from config

js
import { expect, it } from 'vitest'
import { run } from '@stepci/runner'

it('Check Response Status', async () => {
  const workflow = {
    version: "1.1",
    name: "Status Test",
    env: {
      host: "example.com"
    },
    tests: {
      example: {
        steps: [{
          name: "GET request",
          http: {
            url: "https://${{env.host}}",
            method: "GET",
            check: {
              status: "/^20/"
            }
          }
        }]
      }
    }
  }

  const { result } = await run(workflow)
  expect(result.passed).toBe(true)
})