mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
import {waitFor} from 'sentry-test/reactTestingLibrary';
|
|
|
|
import {doDiscoverQuery} from './genericDiscoverQuery';
|
|
|
|
describe('doDiscoverQuery', function () {
|
|
const api = new MockApiClient();
|
|
let eventsMock;
|
|
beforeEach(function () {
|
|
eventsMock = MockApiClient.addMockResponse({
|
|
url: '/organizations/org-slug/events/',
|
|
status: 429,
|
|
statusCode: 429,
|
|
});
|
|
});
|
|
|
|
it('retries discover query when given retry options', async function () {
|
|
await expect(
|
|
doDiscoverQuery(
|
|
api,
|
|
'/organizations/org-slug/events/',
|
|
{},
|
|
{retry: {statusCodes: [429], tries: 3, baseTimeout: 0}}
|
|
)
|
|
).rejects.toBeDefined();
|
|
expect(eventsMock).toHaveBeenCalledTimes(3);
|
|
});
|
|
|
|
it('fails first discover query and then passes on the retry', async function () {
|
|
const promise = doDiscoverQuery(
|
|
api,
|
|
'/organizations/org-slug/events/',
|
|
{},
|
|
{retry: {statusCodes: [429], tries: 3, baseTimeout: 10}}
|
|
);
|
|
await waitFor(function () {
|
|
expect(eventsMock).toHaveBeenCalledTimes(1);
|
|
});
|
|
// update mock to be successful on second request
|
|
eventsMock = MockApiClient.addMockResponse({
|
|
url: '/organizations/org-slug/events/',
|
|
status: 200,
|
|
statusCode: 200,
|
|
});
|
|
await expect(promise).resolves.toBeDefined();
|
|
expect(eventsMock).toHaveBeenCalledTimes(1);
|
|
});
|
|
});
|