aFromRuntime.sendMessage.callsFake((aMessage) => { const {_listeners} = aToRuntime.onMessage; assert.isAtMost(_listeners.length, 1); if (_listeners.length === 0) return Promise.resolve(); const rv = Promise.resolve(_listeners[0](aMessage)); if (onRuntimeSendMessageCalled) { onRuntimeSendMessageCalled(aMessage, rv); } return rv; });
@test('filter="fre" returns subset of results') public async filteredCustomers1() { let result = await getAllCustomers({ filter: 'fre' }); assert.isArray(result, 'Expected result to be an array'); assert.isAtLeast(result.length, 3, 'Expected 3 or more customers in array'); assert.isAtMost(result.length, 5, 'Expected 5 or fewer customers in array'); validateRecordColumns( { recordType: 'customer', functionName: 'getAllCustomers({ filter: "fre" })' }, result[0], ALL_CUSTOMERS_REQUIRED_COLS, [] ); }
fetchMock.mock("/ts/query", "post", (url: string, requestObj: RequestInit) => { // Assert that metric store's "inFlight" is 1 or 2. assert.isAtLeast(mockMetricsState.inFlight, 1); assert.isAtMost(mockMetricsState.inFlight, 1); let request = JSON.parse(requestObj.body as string) as TSRequest; return { body: { results: _.map(request.queries, (q) => { return { query: q, datapoints: [], }; }), }, }; });
response: (url: string, requestObj: RequestInit) => { // Assert that metric store's "inFlight" is 1 or 2. assert.isAtLeast(mockMetricsState.inFlight, 1); assert.isAtMost(mockMetricsState.inFlight, 2); let request = protos.cockroach.ts.tspb.TimeSeriesQueryRequest.decode(requestObj.body as ArrayBuffer); return { body: new protos.cockroach.ts.tspb.TimeSeriesQueryResponse({ results: _.map(request.queries, (q) => { return { query: q, datapoints: [], }; }), }).toArrayBuffer(), }; },
fetchMock.mock("/ts/query", "post", (url: string, requestObj: RequestInit) => { // Assert that metric store's "inFlight" is 1 or 2. assert.isAtLeast(mockMetricsState.inFlight, 1); assert.isAtMost(mockMetricsState.inFlight, 1); let request = new protos.cockroach.ts.tspb.TimeSeriesQueryRequest(JSON.parse(requestObj.body as string)); return { sendAsJson: false, body: new protos.cockroach.ts.tspb.TimeSeriesQueryResponse({ results: _.map(request.queries, (q) => { return { query: q, datapoints: [], }; }), }).encodeJSON(), }; });
@test('filter="mo" returns subset of results') public async filteredCustomers2() { let result = await getAllCustomers({ filter: 'mo' }); assert.isArray(result, 'Expected result to be an array'); assert.isAtMost( result.length, 12, 'Expected 12 or fewer customers in array' ); validateRecordColumns( { recordType: 'customer', functionName: 'getAllCustomers({ filter: "mo" })' }, result[1], ALL_CUSTOMERS_REQUIRED_COLS, [] ); }