A fake company your software can interact with

WorldFixture

3 min read Original article ↗

Run local, emulated Slack, GitHub, Gmail, Stripe, S3, and more with shared people and history. New activity arrives over time, so you can see how your app responds.

You build an app that connects to Slack, Gmail, or Stripe. To test it, you need accounts, data in those accounts, and activity for your app to respond to.

WorldFixture gives you local, fake versions of those services, already populated with connected data. New events arrive while your app runs.

Point your app at them, check that it works, then reset and test again.

Northstar Relay · Example company

Email

Priya RamanLumen Labs

Renewal and export reliability

Before we renew on Tuesday, can you confirm that scheduled exports work at our volume?

Slack

David Banerjee#account-lumen

Lumen's renewal is Tuesday.

Priya needs an answer on exports. What can we promise from the fix in #902?

GitHub

Maya Chenrelay-exports · #902

Scheduled exports exceed the worker lease

The lease heartbeat passes at 268,000 rows. Lumen will test its saved export next.

Open

New activity while your app runs.

Play scheduled messages and events through the local services. Pause or advance time to test what happens next.

WorldFixture Timeline showing a running clock, scheduled events, and controls to pause, advance time, or loop the schedule.
Scheduled events in a running world, shown in the WorldFixture Workbench.

Run locally. Reset when you need to.

Use the service URLs in your app. After a test, reset the services to their starting state.

npx worldfixture env

export GITHUB_BASE_URL='http://127.0.0.1:58832'
export GOOGLE_BASE_URL='http://127.0.0.1:58833'
export S3_BASE_URL='http://127.0.0.1:58847'
export SLACK_BASE_URL='http://127.0.0.1:58831'
export SMTP_HOST_PORT='127.0.0.1:58845'
export STRIPE_BASE_URL='http://127.0.0.1:58829'

Before you use it

Who is WorldFixture for?

Developers building apps that read from or write to external services.

What can I use it for?

Test workflows across services, develop an integration, or demo your app with realistic activity.

When is it useful?

Before a customer demo, while building an integration, or when tests need the same starting data. It helps when people and records must match across several services.

When are normal tests a better fit?

Use unit tests and mocks for isolated logic, and a real test database for database behavior. Keep provider sandbox checks: WorldFixture implements selected API operations, not complete copies of each provider.

How does it compare to other tools?

Faker generates data. WireMock lets you define API behavior. WorldFixture provides a company across local services, with shared history and events. It builds on emulate.dev for many of its APIs.

What would a product demo look like?

Connect your app to local services. Show it reading the existing data and responding as new events arrive.

Give your software a company.