🚀 DAY 5 OF LAUNCH WEEK:Introducing Webhook Events for Alert Changes.Learn more →
Socket
Book a DemoInstallSign in
Socket

cross-bdd

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cross-bdd

Cross-runtime `describe`/`it` for Bun, Deno, and Node.js test runners.

latest
Source
npmnpm
Version
0.2.0
Version published
Maintainers
1
Created
Source

cross-bdd

Cross-runtime testing helpers that map to the native test runners in Bun, Deno, and Node.js so your specs can stay portable.

Why?

Every runtime ships its own standard library test runner with slightly different semantics. cross-bdd gives you a single describe/it pair that forwards to the familiar primitives in each environment, letting you share the same test suite without wrapping everything yourself.

Installation

npm add -D cross-bdd
# or
pnpm add -D cross-bdd
# or
yarn add -D cross-bdd
# or
bun add -d cross-bdd
# or
deno add npm:cross-bdd

Usage

// foo.test.ts

import { describe, it } from 'cross-bdd'

describe('math', () => {
  it('adds numbers', () => {
    const result = 2 + 2
    if (result !== 4) {
      throw new Error('Expected 4')
    }
  })

  it('supports async work', async () => {
    await new Promise((resolve) => setTimeout(resolve, 10))
  })
})

Then run your tests with the native test runner for your runtime:

# Bun
bun test
# Deno
deno test
# Node.js
node --test

Notes

  • Can be used with @std/assert or @std/expect for runtime-agnostic assertions.

  • You can nest describe blocks as needed. Async describe bodies are supported.

  • An opinionated reusable workflow is provided in the repo. To use it, create a workflow file in your own repo:

    # .github/workflows/test.yaml
    name: Test
    
    on:
      push:
        branches: [main]
      pull_request:
        branches: [main]
        types: [opened, synchronize, reopened]
      workflow_dispatch:
    
    concurrency:
      group: ${{ github.workflow }}-${{ github.ref }}
      cancel-in-progress: true
    
    jobs:
      test:
        uses: brc-dd/cross-bdd/.github/workflows/test.reusable.yaml@main
        with:
          deno_versions: stable # remove this line to skip Deno testing
          bun_versions: latest # remove this line to skip Bun testing
          node_versions: 20 22 24 # remove this line to skip Node.js testing
    

Credits

Takes inspiration from cross-org/test, cross-org/workflows, and @std/testing/bdd.

Sponsors

brc-dd's sponsors

Keywords

cross

FAQs

Package last updated on 02 Nov 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts