All files / lib/state-machines QuoteStatusValidator.ts

75% Statements 9/12
50% Branches 5/10
100% Functions 1/1
75% Lines 9/12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23  1x 1x     7x   4x 3x   1x   1x                 2x  
import { QUOTE_STATUS_ENUM } from '../models/Enums';
export class QuoteStatusValidator {
    static validateState(currentState:QUOTE_STATUS_ENUM, nextState: QUOTE_STATUS_ENUM): boolean {
        switch (nextState) {
            case QUOTE_STATUS_ENUM.PENDING:
                if (currentState !== QUOTE_STATUS_ENUM.NEW) {
                    return false;
                }
                return true;
            case QUOTE_STATUS_ENUM.CLOSED: { //Quote can be CLOSED at any state
                return true;
            }
            case QUOTE_STATUS_ENUM.ESTIMATED: {
                if ((currentState !== QUOTE_STATUS_ENUM.PENDING) && (currentState !== QUOTE_STATUS_ENUM.NEW)) {
                    return false;
                }
                return true;
            }
            default:
                return false;
        }
    }
}