Skip to content

Jiasm/api-compare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

api-compare

😋 Optional comparator, compare multiple request results, highlight the diff.

由一次项目代码优化而产生的轮子,用于 diff 数个接口之间的返回值是否一致。
自定义一些对比规则,来帮助验证确保升级不会影响到原有的数据结构。

Install

npm i -D api-compare

Usage

const Comparator = require('api-compare')

async function main() {
  let c = new Comparator()
  c.append({
    urlList: [
      'https://postman-echo.com/get?name=Niko&age=18',
      'https://postman-echo.com/get?name=Bellic&age=18'
    ],
    validator(data) {
      data.login = 'Login must be equal'
      data.site_admin = 'Site_admin must be equal'
    }
  })
  console.log('start check')
  let results = await c.check()
  console.log('get results', results[0]) 
  //  [ { msg: 'Login must be equal', validate: true }, { msg: 'Age must be equal', validate: false } ]
}

main()

Method

init

key type desc
errorOnly? Boolean Filter access log
let c = new Comparator({
  errorOnly: true
})

append

Add new request group.

key type desc
urlList Array List of request
validator Function Custom validate
optionList? Array/Object Request option, like method, headers
c.append({
  urlList: [
    'domain1',
    'domain2'
  ],
  validator(data) {
    // do some validate
  }
})

Pipeline

c.append().append()

optionList

If optionList less than urlList, recycle optionList like padStart/padEnd.

c.append({
  urlList: [
    'domain1', 'domain2',
    'domain3', 'domain4'
  ],
  optionList: [{
    option: 1
  }, {
    option: 2
  }]
})

// domain1 {option: 1}
// domain2 {option: 2}
// domain3 {option: 1}
// domain4 {option: 2}

check

Run all task from append.

Return results, order of append.

let results = await c.check() // results for validate

About

😋 Optional comparator, compare multiple request results, highlight the diff.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published