Это не может быть идеальным, но мои настройки примерно такие, используя Jest.Надеюсь, это поможет вам.
beforeAll((done) => {
client = new service.SomeService(
'localhost:55051',
grpc.credentials.createInsecure()
);
done();
});
afterAll(done => {
client = null;
done();
});
/**
* Handles gRPC responses. Takes a parser to use against the response object
* @param {function} responseParser the parser for the response object
* @returns {function} the callback to pass in to gRPC responses
*/
const responseHandler = (onErr, responseParser, done) => (err, response) => {
if (err) {
return onErr(err, done)
} else {
return responseParser(response, done);
}
};
describe('Authenticate', () => {
const callback = expected => (response, done) => {
const received = {
status: response.status,
challenge: bytes(response.challenge),
};
expect(received).toEqual(expected);
done();
const errHandler = expected => (err, done) => {
expect(err).toBe('Offline')
};
test('Gets a challenge token', (done) => {
const expected = {
status: testValues.SUCCESS,
challenge: testValues.CHALLENGE
};
client.authenticate(
{ someKey: testValues.SOME_KEY },
responseHandler(errHandler(expected), callback(expected), done)
);
});
});