How to use the @tinkoff/request-core.Status.ERROR function in @tinkoff/request-core

To help you get started, we’ve selected a few @tinkoff/request-core examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github TinkoffCreditSystems / tinkoff-request / packages / plugin-cache-deduplicate / src / deduplicate.spec.ts View on Github external
const error = new Error('text');

        requests.forEach((request, index) => {
            const context = new Context({ request });

            context.updateExternalMeta = jest.fn(context.updateExternalMeta.bind(context));
            context.updateInternalMeta = jest.fn(context.updateInternalMeta.bind(context));

            plugin.init(context, next, null);
            expect(context.updateInternalMeta).toHaveBeenCalledWith(metaTypes.CACHE, { key: request.url });
            if (request.url === 'first' && index !== 0) {
                expect(context.updateExternalMeta).toHaveBeenCalledWith(metaTypes.CACHE, { deduplicated: true });
            }
        });
        expect(next).toHaveBeenCalledTimes(2);
        plugin.error(new Context({ error, request: requests[0], status: Status.ERROR }), next, null);
        expect(next).toHaveBeenCalledTimes(5); // 4 requests init + 1 complete
        requests.forEach((request) => {
            expect(next).toHaveBeenCalledWith({ error, status: Status.ERROR, response: null });
        });
    });
});
github TinkoffCreditSystems / tinkoff-request / packages / plugin-protocol-http / src / http.spec.ts View on Github external
it('request unknown error', async () => {
        const mockResponse = jest.fn(() => Promise.reject(new TypeError('Failed to fetch')));

        fetch.mockResponse(mockResponse);

        plugin.init(new Context({ request: { url: 'test' } }), next, null);

        await new Promise((res) => {
            next.mockImplementation(res);
        });

        expect(mockResponse).toBeCalled();
        expect(next).toHaveBeenLastCalledWith({
            status: Status.ERROR,
            error: new TypeError('Failed to fetch'),
        });
    });
github TinkoffCreditSystems / tinkoff-request / packages / plugin-validate / src / validate.spec.ts View on Github external
it('on error validate, change status to error, fallback disabled', () => {
        const request = { a: 1, url: '' };
        const next = jest.fn();
        const plugin = validate({ validator, allowFallback: false });

        context.setState({ request, response: { error: '123' } });

        plugin.complete(context, next, null);
        expect(next).toHaveBeenCalledWith({
            request: { ...request, fallbackCache: false },
            status: Status.ERROR,
            error: new Error('123'),
        });
    });
github TinkoffCreditSystems / tinkoff-request / packages / plugin-batch / src / batch.spec.ts View on Github external
const init = batch({ makeGroupedRequest, timeout: 123 }).init;
        const next = jest.fn();

        context.setState({ request: requests[0] });
        init(context, next, null);
        context.setState({ request: requests[1] });
        init(context, next, null);
        context.setState({ request: requests[2] });
        init(context, next, null);

        jest.runAllTimers();
        await Promise.resolve();
        expect(next).toHaveBeenCalledTimes(3);
        expect(next).toHaveBeenLastCalledWith({
            error,
            status: Status.ERROR,
        });
    });
});
github TinkoffCreditSystems / tinkoff-request / packages / plugin-validate / src / validate.spec.ts View on Github external
it('on error validate, change status to error', () => {
        const request = { a: 1, url: '' };
        const next = jest.fn();

        context.setState({ request, response: { error: '123' } });

        plugin.complete(context, next, null);
        expect(next).toHaveBeenCalledWith({
            request,
            status: Status.ERROR,
            error: new Error('123'),
        });
    });
github TinkoffCreditSystems / tinkoff-request / packages / plugin-protocol-http / src / http.spec.ts View on Github external
},
                body: JSON.stringify({ a: '1', b: 2 }),
            })
        );

        fetch.mockResponse(mockResponse);

        plugin.init(new Context({ request: { url: 'test' } }), next, null);

        await new Promise((res) => {
            next.mockImplementation(res);
        });

        expect(mockResponse).toBeCalled();
        expect(next).toHaveBeenLastCalledWith({
            status: Status.ERROR,
            error: new Error('Service Unavailable'),
            response: { a: '1', b: 2 },
        });
    });
github TinkoffCreditSystems / tinkoff-request / packages / plugin-protocol-http / src / http.ts View on Github external
const abort = (abortOptions?) => {
                    if (ended) {
                        return;
                    }

                    ended = true;
                    controller.abort();

                    next({
                        status: Status.ERROR,
                        error: abortOptions || {},
                    });
                };
github TinkoffCreditSystems / tinkoff-request / packages / plugin-validate / src / validate.ts View on Github external
const error = validator(state);

        context.updateExternalMeta(VALIDATE, {
            validated: !error,
        });

        if (error) {
            return next({
                error,
                request: allowFallback
                    ? request
                    : {
                          ...request,
                          fallbackCache: false,
                      },
                status: Status.ERROR,
            });
        }

        return next();
    },
    error: (context, next) => {
github TinkoffCreditSystems / tinkoff-request / packages / plugin-cache-deduplicate / src / deduplicate.spec.ts View on Github external
requests.forEach((request) => {
            expect(next).toHaveBeenCalledWith({ error, status: Status.ERROR, response: null });
        });
    });
github TinkoffCreditSystems / tinkoff-request / packages / plugin-circuit-breaker / src / circuit-breaker.ts View on Github external
init: (context, next) => {
            const state = context.getState();
            const breaker = getBreaker(state);

            if (breaker.shouldThrow()) {
                context.updateExternalMeta(CIRCUIT_BREAKER_META, {
                    open: true,
                });

                return next({
                    status: Status.ERROR,
                    error: breaker.getError(),
                });
            }

            context.updateInternalMeta(CIRCUIT_BREAKER_META, {
                breaker,
            });
            next();
        },
        complete: (context, next) => {

@tinkoff/request-core

Request library extendable by plugins

Apache-2.0
Latest version published 5 months ago

Package Health Score

45 / 100
Full package analysis