Search
Write a publication
Pull to refresh
10
0
Илья Кашлаков @MrKashlakov

Разработчик

Send message

На TypeScript мы переодически смотрим — например, сейчас есть большой монолитный проект. Если активно добавлять туда разные технологии и фреймворки, то есть риск сильно раздуть его. При дроблении монолита на микросервисы мы вообще стараемся использовать современные подходы, поэтому задумываемся и об использовании TypeScript.

Скорее всего что-то пошло не по плану в процессе установки модуля. Поможем разобраться, напишите на cms@yamoney.ru.

Конечно же мы стараемся покрывать наш код тестами. Для тестирования ProcessFlow был написан небольшой хэлпер,
который позволяет тестировать каждый функциональный блок процесса независимо. Вот пример кода теста:


const checkUserProcess = require('./check-user');
const processFlowStubHelper = require('process-flow-stub-helper');

const checkUserProcessStub = processFlowStubHelper(checkUserProcess);

it('should check userName successful', done => {
    checkUserProcessStub.runStage('checkUserName', {
        userName: 'testUser',
        balance: 0
    })
    .onTransition((stageName, outputData) => {
        stageName.should.be.eq('checkUserBalance');
        outuputData.should.be.deep.eq({
            userName: 'testUser',
            balance: 0
        });
        done();
    });
});

Вызываем необходимый функциональный блок с определенными данными и проверяем выходы этого блока. Код тестов получается достаточно простой и понятный.
Глобальных объектов в ProcessFlow нет, все объекты приходят в качестве аргументов функции и являются для нее локальными. Сам ProcessFlow поставляется модулем и подключается через require, там где он нужен. Что вы имели в виду под глобальным объектом?

Переписали процесс платежа с нуля, но процесс платежа это только часть сервиса Яндекс.Деньги

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Date of birth
Registered
Activity