Gathering detailed insights and metrics for @improbable-eng/grpc-web-fake-transport
Gathering detailed insights and metrics for @improbable-eng/grpc-web-fake-transport
npm install @improbable-eng/grpc-web-fake-transport
Typescript
Module System
Node Version
NPM Version
71.5
Supply Chain
90.2
Quality
77.4
Maintenance
100
Vulnerability
99.3
License
Cumulative downloads
Total Downloads
Last day
-59%
41
Compared to previous day
Last week
-36.2%
219
Compared to previous week
Last month
18.8%
1,301
Compared to previous month
Last year
-53.6%
20,165
Compared to previous year
1
2
Fake Transport for use with @improbable-eng/grpc-web.
FakeTransportBuilder
builds a Transport
that can be configured to send preset headers, messages, and trailers for testing.
By default the Transport
that FakeTranportBuilder.build()
generates will trigger all of the specified response behaviours (.withHeaders(metadata)
, .withMessages([msgOne, msgTwo])
, .withTrailers(metadata)
) when the client has finished sending.
This is usually the desired flow as all of the response behaviour is triggered only after the client has finished sending as would most commonly occur in production usage.
However, in the case of bi-directional or other complex usage it can be helpful to use .withManualTrigger()
to disable automatic sending of messages or headers/trailers and trigger the sending manually using sendHeaders()
, sendMessages()
and sendTrailers()
.
1import { FakeTransportBuilder } from '@improbable-eng/grpc-web-fake-transport'; 2 3const fakeTransport = new FakeTransportBuilder() 4 .withMessages([ new PingResponse() ]) 5 .build(); 6 7const client = new PingServiceClient("https://example.com", { 8 transport: fakeTransport 9}); 10 11client.DoPing(/* ... */);
1import { grpc } from '@improbable-eng/grpc-web'; 2import { FakeTransportBuilder } from '@improbable-eng/grpc-web-fake-transport'; 3 4const fakeTransport = new FakeTransportBuilder() 5 .withMessages([ new PingResponse() ]) 6 .build(); 7 8grpc.invoke(PingService.DoPing, { 9 host: "https://example.com", 10 transport: fakeTransport, 11 /* ... */ 12});
withManualTrigger()
1import { grpc } from '@improbable-eng/grpc-web'; 2import { FakeTransportBuilder } from '@improbable-eng/grpc-web-fake-transport'; 3 4const fakeTransport = new FakeTransportBuilder() 5 .withManualTrigger() 6 .withHeaders(new grpc.Metadata({ headerKey: "value" })) 7 .withMessages([ new PingResponse() ]) 8 .withTrailers(new grpc.Metadata({ trailerKey: "value" })) 9 .build(); 10 11grpc.invoke(PingService.DoPing, { 12 host: "https://example.com", 13 transport: fakeTransport, 14 /* ... */ 15}); 16 17// Manually trigger the response behaviours 18fakeTransport.sendHeaders(); 19fakeTransport.sendMessages(); 20fakeTransport.sendTrailers();
Alternatively replace the Default Transport when initialising your tests:
1import { grpc } from "@improbable-eng/grpc-web"; 2import { NodeHttpTransport } from "@improbable-eng/grpc-web-fake-transport"; 3 4// Do this first, before you make any grpc requests! 5grpc.setDefaultTransport(fakeTransport);
No vulnerabilities found.
No security vulnerabilities found.