summaryrefslogtreecommitdiff
path: root/addons/pos_restaurant/static/tests/tours/FloorScreen.tour.js
blob: 6c542e668587fb438d442e66d0122991884fabff (plain)
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
102
103
104
105
106
107
108
109
odoo.define('pos_restaurant.tour.FloorScreen', function (require) {
    'use strict';

    const { Chrome } = require('pos_restaurant.tour.ChromeTourMethods');
    const { FloorScreen } = require('pos_restaurant.tour.FloorScreenTourMethods');
    const { TextInputPopup } = require('pos_restaurant.tour.TextInputPopupTourMethods');
    const { NumberPopup } = require('point_of_sale.tour.NumberPopupTourMethods');
    const { ProductScreen } = require('pos_restaurant.tour.ProductScreenTourMethods');
    const { getSteps, startSteps } = require('point_of_sale.tour.utils');
    var Tour = require('web_tour.tour');

    // signal to start generating steps
    // when finished, steps can be taken from getSteps
    startSteps();

    // check floors if they contain their corresponding tables
    FloorScreen.check.selectedFloorIs('Main Floor');
    FloorScreen.check.hasTable('T2');
    FloorScreen.check.hasTable('T4');
    FloorScreen.check.hasTable('T5');
    FloorScreen.do.clickFloor('Second Floor');
    FloorScreen.check.hasTable('T3');
    FloorScreen.check.hasTable('T1');

    // clicking table in active mode does not open product screen
    // instead, table is selected
    FloorScreen.do.clickEdit();
    FloorScreen.check.editModeIsActive(true);
    FloorScreen.do.clickTable('T3');
    FloorScreen.check.selectedTableIs('T3');
    FloorScreen.do.clickTable('T1');
    FloorScreen.check.selectedTableIs('T1');

    // switching floor in edit mode deactivates edit mode
    FloorScreen.do.clickFloor('Main Floor');
    FloorScreen.check.editModeIsActive(false);
    FloorScreen.do.clickEdit();
    FloorScreen.check.editModeIsActive(true);

    // test add table
    FloorScreen.do.clickAddTable();
    FloorScreen.check.selectedTableIs('T1');
    FloorScreen.do.clickRename();
    TextInputPopup.check.isShown();
    TextInputPopup.do.inputText('T100');
    TextInputPopup.do.clickConfirm();
    FloorScreen.check.selectedTableIs('T100');

    // test duplicate table
    FloorScreen.do.clickDuplicate();
    // new table is already named T101
    FloorScreen.check.selectedTableIs('T101');
    FloorScreen.do.clickRename();
    TextInputPopup.check.isShown();
    TextInputPopup.do.inputText('T1111');
    TextInputPopup.do.clickConfirm();
    FloorScreen.check.selectedTableIs('T1111');

    // switch floor, switch back and check if
    // the new tables are still there
    FloorScreen.do.clickFloor('Second Floor');
    FloorScreen.check.editModeIsActive(false);
    FloorScreen.check.hasTable('T3');
    FloorScreen.check.hasTable('T1');

    FloorScreen.do.clickFloor('Main Floor');
    FloorScreen.check.hasTable('T2');
    FloorScreen.check.hasTable('T4');
    FloorScreen.check.hasTable('T5');
    FloorScreen.check.hasTable('T100');
    FloorScreen.check.hasTable('T1111');

    // test delete table
    FloorScreen.do.clickEdit();
    FloorScreen.check.editModeIsActive(true);
    FloorScreen.do.clickTable('T2');
    FloorScreen.check.selectedTableIs('T2');
    FloorScreen.do.clickTrash();
    Chrome.do.confirmPopup();

    // change number of seats
    FloorScreen.do.clickTable('T4');
    FloorScreen.check.selectedTableIs('T4');
    FloorScreen.do.clickSeats();
    NumberPopup.do.pressNumpad('Backspace 9');
    NumberPopup.check.inputShownIs('9');
    NumberPopup.do.clickConfirm();
    FloorScreen.check.tableSeatIs('T4', '9');

    // change shape
    FloorScreen.do.changeShapeTo('round');

    // Opening product screen in main floor should go back to main floor
    FloorScreen.do.clickEdit();
    FloorScreen.check.editModeIsActive(false);
    FloorScreen.check.tableIsNotSelected('T4');
    FloorScreen.do.clickTable('T4');
    ProductScreen.check.isShown();
    Chrome.check.backToFloorTextIs('Main Floor', 'T4');
    Chrome.do.backToFloor();

    // Opening product screen in second floor should go back to second floor
    FloorScreen.do.clickFloor('Second Floor');
    FloorScreen.check.hasTable('T3');
    FloorScreen.do.clickTable('T3');
    Chrome.check.backToFloorTextIs('Second Floor', 'T3');

    Tour.register('FloorScreenTour', { test: true, url: '/pos/ui' }, getSteps());
});