Skip to content

agreed is Consumer Driven Contract tool with JSON mock server.

Notifications You must be signed in to change notification settings

recruit-tech/agreed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

955 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node.js CI

agreed is Consumer Driven Contract tool with JSON mock server.

agreed has 3 features.

  1. Create contract file as json(json5/yaml/etc) file
  2. mock server for frontend development
  3. test client for backend development

Install

$ npm install @agreed/cli -g

Usage

Usage as Frontend Mock Server

  • Create agreed file (this file is used as a contract between frontend and backend)
// save as agreed.js
module.exports = [
  {
    request: {
      path: '/user/:id',
      method: 'GET',
      query: {
        q: '{:someQueryStrings}',
      },
      values: {
        id: 'yosuke',
        someQueryStrings: 'foo'
      },
    },
    response: {
      headers: {
        'x-csrf-token': 'csrf-token', 
      },
      body: {
        message: '{:greeting} {:id} {:someQueryStrings}',
        images: '{:images}',
        themes: '{:themes}',
      },
      values: {
        greeting: 'hello',
        images: [
          'http://example.com/foo.jpg',
          'http://example.com/bar.jpg',
        ],
        themes: {
          name: 'green',
        },
      }
    },
  },
]
  • Run server
$ agreed-server --path ./agreed.js --port 3010
  • curl to the mock server
$ curl http://localhost:3010/user/yosuke?q=foo
{
  "message": "hello yosuke foo",
  "images": [
    "http://example.com/foo.jpg",
    "http://example.com/bar.jpg"
  ],
  "themes": {
    "name": "green"
  }
}

Usage as Backend test client

  • Run test client for confirm response
$ agreed-client --path ./agreed.js --port 3030 --host example.com

Usage: Agreed Documentation

  • Run documentation server
$ agreed-ui --path ./agreed.js --port 3031

ScreenShot

About

agreed is Consumer Driven Contract tool with JSON mock server.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 14