test(cypress-github-backend): optionally record tests and run using recorded data (#2776)
This commit is contained in:
committed by
Shawn Erquhart
parent
0f60a559c1
commit
b869ce05ae
49
cypress/utils/mock-server.js
Normal file
49
cypress/utils/mock-server.js
Normal file
@ -0,0 +1,49 @@
|
||||
const { mockServerClient } = require('mockserver-client');
|
||||
const mockserver = require('mockserver-node');
|
||||
|
||||
const PROXY_PORT = 1080;
|
||||
const PROXY_HOST = 'localhost';
|
||||
|
||||
const start = () =>
|
||||
mockserver.start_mockserver({
|
||||
serverPort: PROXY_PORT,
|
||||
});
|
||||
|
||||
const stop = () =>
|
||||
mockserver.stop_mockserver({
|
||||
serverPort: PROXY_PORT,
|
||||
});
|
||||
|
||||
const retrieveRecordedExpectations = async () => {
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
mockServerClient(PROXY_HOST, PROXY_PORT)
|
||||
.retrieveRecordedExpectations({})
|
||||
.then(resolve, reject);
|
||||
});
|
||||
|
||||
let recorded = await promise;
|
||||
recorded = recorded.filter(({ httpRequest }) => {
|
||||
const { Host = [] } = httpRequest.headers;
|
||||
|
||||
return Host.includes('api.github.com');
|
||||
});
|
||||
|
||||
return recorded;
|
||||
};
|
||||
|
||||
const resetMockServerState = async () => {
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
mockServerClient(PROXY_HOST, PROXY_PORT)
|
||||
.reset()
|
||||
.then(resolve, reject);
|
||||
});
|
||||
|
||||
await promise;
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
start,
|
||||
stop,
|
||||
resetMockServerState,
|
||||
retrieveRecordedExpectations,
|
||||
};
|
Reference in New Issue
Block a user