Skip to content

stripe-mock is a mock HTTP server that responds like the real Stripe API. It can be used instead of Stripe's testmode to make test suites integrating with Stripe faster and less brittle.

License

Notifications You must be signed in to change notification settings

woven-teams/stripe-mock

 
 

Repository files navigation

stripe-mock Build Status

stripe-mock is a mock HTTP server that responds like the real Stripe API. It can be used instead of Stripe's testmode to make test suites integrating with Stripe faster and less brittle.

stripe-mock is powered by the Stripe OpenAPI specification, which is generated from within the backend API implementation. It operates statelessly (i.e. it won't remember new resources that are created with it) and responds with sample data that's generated using a similar scheme to the one found in the API reference.

Usage

Get it from Homebrew or download it from the releases page:

brew install stripe/stripe-mock/stripe-mock

# start a stripe-mock service at login
brew services start stripe-mock

# upgrade if you already have it
brew upgrade stripe-mock

Or if you have Go installed you can build it:

go get -u github.com/stripe/stripe-mock

Run it:

stripe-mock

Or with docker:

# build
docker build . -t stripe-mock
# run
docker run -p 12111:12111 stripe-mock

Then from another terminal:

curl -i http://localhost:12111/v1/charges -H "Authorization: Bearer sk_test_123"

By default, stripe-mock runs on port 12111, but is configurable with the -port option.

Development

Testing

Run the test suite:

go test ./...

Binary data & updating OpenAPI

The project uses go-bindata to bundle OpenAPI and fixture data into bindata.go so that it's automatically included with built executables. Rebuild it with:

# Make sure you have the go-bindata executable (it's not vendored into this
# repository).
go get -u github.com/jteeuwen/go-bindata/...

# Drop into the openapi/ Git submodule and update it (you may have to commit a
# change).
pushd openapi/ && git pull origin master && popd

# Generates `bindata.go`.
go generate

Release

Release builds are generated with goreleaser. Make sure you have the software and a GITHUB_TOKEN:

go get -u github.com/goreleaser/goreleaser
export GITHUB_TOKEN=...

Commit changes and tag HEAD:

git tag v0.1.1
git push origin --tags

Then run goreleaser and you're done! Check releases (it also pushes to the Homebrew tap).

goreleaser --rm-dist

About

stripe-mock is a mock HTTP server that responds like the real Stripe API. It can be used instead of Stripe's testmode to make test suites integrating with Stripe faster and less brittle.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 98.9%
  • Other 1.1%