'use strict' const { expect } = require('chai') const GithubApiProvider = require('./github-api-provider') describe('Github API provider', function() { const baseUrl = process.env.GITHUB_URL || 'https://api.github.com' let githubApiProvider before(function() { githubApiProvider = new GithubApiProvider({ baseUrl }) }) const headers = [] async function performOneRequest() { const { res } = await githubApiProvider.requestAsPromise( require('request'), '/repos/rust-lang/rust', {} ) expect(res.statusCode).to.equal(200) headers.push(res.headers) } before('should be able to run 10 requests', async function() { this.timeout(10000) for (let i = 0; i < 10; ++i) { await performOneRequest() } }) it('should decrement the limit remaining with each request', function() { const remaining = headers.map(h => +h['x-ratelimit-remaining']) const expected = Array.from({ length: 10 }, (e, i) => remaining[0] - i) expect(remaining).to.deep.equal(expected) }) })