all files / tests/ gotoscreen.spec.js

100% Statements 36/36
100% Branches 2/2
100% Functions 7/7
100% Lines 36/36
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101               40× 40× 40×     40×                     32×               16× 16×                                                                              
define(['./core-test', '../js/main', '../js/errors'], function(core, rb, Errors) {
    'use strict';
 
    var screens;
    var checkScreen = core.checkScreen;
    var _goToScreen = core.goToScreen;
    var configure = core.configure;
 
    function initEach(opts) {
        window.rb = rb;
 
        function create(index) {
            var name = 'markup' + index;
            opts.html = '<div class="' + name + '">' + name + '</div>';
            return new rb.Screen(opts);
        }
 
        screens = [];
        for (var i = 0; i < 10; i++) {
            screens.push(create(i));
        }
        rb.Screen.setMainScreen(screens[0]);
 
        $('body').append('<div id="rb1" class="rb-wrapper"></div>');
    }
    function init() {
        var rb1 = rb.Instances.rb1;
        rb1.configure({
            wrongTime1: 5,
            wrongTime2: 5,
            correctTime: 10
        });
    }
    function init1(loop) {
        for (var i = 0; i < 8; i++) {
            screens[i].pushChildren([screens[i+1]]);
        }
 
        screens[3].pushChildren([screens[5]]);
        screens[7].pushChildren([screens[1]]);
        if (loop) {
            screens[9].pushChildren([screens[0]]);
        }
 
        init();
    }
 
    function goToScreen(i, correctErr) {
        return function (done) {
            return _goToScreen(screens[i], correctErr)(done);
        };
    }
 
    var t = new core.TestsWrapper('GoToScreen1');
    t.addTestsSerial('GoToScreen1', init1.bind(undefined, false), [
        [goToScreen(1), checkScreen('screen_2')],
        [goToScreen(5), checkScreen('screen_6')],
        [goToScreen(9, Errors.PathNotFoundError), checkScreen('screen_6')],
        [goToScreen(0), checkScreen('screen_1')]
    ]);
    t.start(initEach.bind(undefined, {
        isDirectedGraph: false
    }));
 
    var t2 = new core.TestsWrapper('GoToScreen2');
    t2.addTestsSerial('GoToScreen2', init1.bind(undefined, false), [
        [goToScreen(1), checkScreen('screen_2')],
        [goToScreen(5), checkScreen('screen_6')],
        [goToScreen(9, Errors.PathNotFoundError), checkScreen('screen_6')],
        [goToScreen(0), checkScreen('screen_1')]
        //[goToScreen(0, Errors.PathNotFoundError), checkScreen('screen_6')] потому что ищем в парентах
    ]);
    t2.start(initEach.bind(undefined, {
        isDirectedGraph: true
    }));
 
    var t3 = new core.TestsWrapper('GoToScreen3');
    t3.addTestsSerial('GoToScreen3', init1.bind(undefined, true), [
        [goToScreen(1), checkScreen('screen_2')],
        [goToScreen(5), checkScreen('screen_6')],
        [goToScreen(9), checkScreen('screen_10')],
        [goToScreen(0), checkScreen('screen_1')]
    ]);
    t3.start(initEach.bind(undefined, {
        isDirectedGraph: false
    }));
 
    var t4 = new core.TestsWrapper('GoToScreen4');
    t4.addTestsSerial('GoToScreen4', init1.bind(undefined, true), [
        [goToScreen(1), checkScreen('screen_2')],
        [goToScreen(5), checkScreen('screen_6')],
        [goToScreen(9), checkScreen('screen_10')],
        [goToScreen(0), checkScreen('screen_1')]
        //[goToScreen(9, Errors.PathNotFoundError), checkScreen('screen_6')], потому что ищем в парентах
        //[goToScreen(0, Errors.PathNotFoundError), checkScreen('screen_6')] потому что ищем в парентах
    ]);
    t4.start(initEach.bind(undefined, {
        isDirectedGraph: true
    }));
});