diff --git a/.eslintrc.json b/.eslintrc.json index d34030c0..c9fcbffb 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -44,10 +44,14 @@ "globals": { "Polymer": false, "MealOrderApp": true, + "MealOrderAppTest": true, "assert": false, "test": false, "suite": false, "fixture": false, - "setup": false + "setup": false, + "flush": false, + "sinon": false, + "mock": true } } diff --git a/client/user/bower.json b/client/user/bower.json index f4c026ef..cf9f3c09 100644 --- a/client/user/bower.json +++ b/client/user/bower.json @@ -6,8 +6,17 @@ "polymer": "Polymer/polymer#^2.0.0", "app-layout": "PolymerElements/app-layout#^2.0.0", "app-route": "PolymerElements/app-route#^2.0.0", - "iron-form": "PolymerElements/iron-form#^2.0.0", - "polymer-redux": "^1.0.5" + "polymer-redux": "^1.0.5", + "paper-card": "PolymerElements/paper-card#^2.1.0", + "vaadin-grid": "vaadin/vaadin-grid#^4.1.7", + "iron-pages": "PolymerElements/iron-pages#^2.1.0", + "paper-tabs": "PolymerElements/paper-tabs#^2.1.0", + "iron-icons": "PolymerElements/iron-icons#^2.1.1", + "iron-list": "PolymerElements/iron-list#^2.0.14", + "paper-item": "PolymerElements/paper-item#^2.1.1", + "paper-button": "PolymerElements/paper-button#^2.1.0", + "app-datepicker": "motss/app-datepicker#^2.12.0", + "paper-search": "Collaborne/paper-search#^2.0.9" }, "devDependencies": { "web-component-tester": "Polymer/web-component-tester#^6.0.0", diff --git a/client/user/index.html b/client/user/index.html index e756040a..f3bd02d2 100644 --- a/client/user/index.html +++ b/client/user/index.html @@ -1,4 +1,3 @@ - + + + + + + + + + + + diff --git a/client/user/src/mealorder/meal-order-client-app.html b/client/user/src/mealorder/meal-order-client-app.html index f722ff85..91da2a69 100644 --- a/client/user/src/mealorder/meal-order-client-app.html +++ b/client/user/src/mealorder/meal-order-client-app.html @@ -17,25 +17,53 @@ ~ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ~ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --> - - - - - - - + href="../../bower_components/app-layout/app-scroll-effects/effects/waterfall.html"> + + + + + + + + + + + - diff --git a/client/user/src/mealorder/meal-order-toolbar.html b/client/user/src/mealorder/meal-order-toolbar.html new file mode 100644 index 00000000..1839c8d4 --- /dev/null +++ b/client/user/src/mealorder/meal-order-toolbar.html @@ -0,0 +1,147 @@ + + + + + + + + + + + diff --git a/client/user/src/mealorder/menu/meal-order-drawer.html b/client/user/src/mealorder/menu/meal-order-drawer.html new file mode 100644 index 00000000..e415c65d --- /dev/null +++ b/client/user/src/mealorder/menu/meal-order-drawer.html @@ -0,0 +1,189 @@ + + + + + + + + + + + diff --git a/client/user/src/mealorder/menu/meal-order-menu-container.html b/client/user/src/mealorder/menu/meal-order-menu-container.html new file mode 100644 index 00000000..7105271f --- /dev/null +++ b/client/user/src/mealorder/menu/meal-order-menu-container.html @@ -0,0 +1,219 @@ + + + + + + + + + + + + + diff --git a/client/user/src/mealorder/menu/meal-order-menu-order.html b/client/user/src/mealorder/menu/meal-order-menu-order.html new file mode 100644 index 00000000..12cacf2c --- /dev/null +++ b/client/user/src/mealorder/menu/meal-order-menu-order.html @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + diff --git a/client/user/src/mealorder/menu/meal-order-user-cart.html b/client/user/src/mealorder/menu/meal-order-user-cart.html new file mode 100644 index 00000000..9256d98a --- /dev/null +++ b/client/user/src/mealorder/menu/meal-order-user-cart.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + diff --git a/client/user/src/mealorder/menu/meal-order-user-order.html b/client/user/src/mealorder/menu/meal-order-user-order.html new file mode 100644 index 00000000..8ede100d --- /dev/null +++ b/client/user/src/mealorder/menu/meal-order-user-order.html @@ -0,0 +1,131 @@ + + + + + + + + + + diff --git a/client/user/src/mealorder/menu/meal-order-vendor-menu.html b/client/user/src/mealorder/menu/meal-order-vendor-menu.html new file mode 100644 index 00000000..be9e0d07 --- /dev/null +++ b/client/user/src/mealorder/menu/meal-order-vendor-menu.html @@ -0,0 +1,217 @@ + + + + + + + + + + + + diff --git a/client/user/src/mealorder/menu/meal-order-vendor-menus.html b/client/user/src/mealorder/menu/meal-order-vendor-menus.html new file mode 100644 index 00000000..67a1a6ab --- /dev/null +++ b/client/user/src/mealorder/menu/meal-order-vendor-menus.html @@ -0,0 +1,202 @@ + + + + + + + + + + diff --git a/client/user/src/mealorder/shell/actions/user-actions.html b/client/user/src/mealorder/shell/actions/user-actions.html new file mode 100644 index 00000000..bb7595f7 --- /dev/null +++ b/client/user/src/mealorder/shell/actions/user-actions.html @@ -0,0 +1,28 @@ + + diff --git a/client/user/src/mealorder/shell/reducers/reducers.html b/client/user/src/mealorder/shell/reducers/reducers.html index 5a8a7729..1509fc90 100644 --- a/client/user/src/mealorder/shell/reducers/reducers.html +++ b/client/user/src/mealorder/shell/reducers/reducers.html @@ -18,19 +18,230 @@ ~ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --> - diff --git a/client/user/src/mealorder/shell/redux-store.html b/client/user/src/mealorder/shell/redux-store.html index ef87ca10..ddedbaac 100644 --- a/client/user/src/mealorder/shell/redux-store.html +++ b/client/user/src/mealorder/shell/redux-store.html @@ -17,9 +17,9 @@ ~ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ~ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --> - - + + + + + + + + + + + + + + + + + diff --git a/client/user/test/mealorder/meal-order-client-app-action_test.html b/client/user/test/mealorder/meal-order-client-app-action_test.html new file mode 100644 index 00000000..b21795cf --- /dev/null +++ b/client/user/test/mealorder/meal-order-client-app-action_test.html @@ -0,0 +1,84 @@ + + + + + + + + meal-order-client test + + + + + + + + + + + + + + + diff --git a/client/user/test/mealorder/meal-order-client-app_test.html b/client/user/test/mealorder/meal-order-client-app_test.html index 6de3294a..c9ed87e2 100644 --- a/client/user/test/mealorder/meal-order-client-app_test.html +++ b/client/user/test/mealorder/meal-order-client-app_test.html @@ -1,4 +1,3 @@ - - @@ -31,11 +29,10 @@ - - + @@ -51,16 +48,45 @@ let component; setup(() => { - component = fixture('BasicClientApp'); + component = fixture('MealOrderClientApp'); }); - test('should parse url correctly', function () { + + test('should parse `routeData.page` correctly', function () { setLocation('/#/history/'); assert.equal('history', component.routeData.page); setLocation('/#/menu/'); assert.equal('menu', component.routeData.page); }); + + test('should parse `routeData.date` correctly', function () { + setLocation('/#/history/2018-03-21'); + assert.equal('2018-03-21', component.routeData.date); + setLocation('/#/menu/2018-03-21'); + assert.equal('2018-03-21', component.routeData.date); + }); + + test('should instantiate the `meal-order-toolbar` component', function (done) { + const elementShadowRoot = component.shadowRoot; + const drawer = elementShadowRoot.querySelector("meal-order-toolbar"); + assert.equal(drawer.tagName.toLocaleLowerCase(), MealOrderApp.MealOrderToolbar.is); + done(); + }); + + test('should instantiate the `meal-order-drawer` component', function (done) { + const elementShadowRoot = component.shadowRoot; + const drawer = elementShadowRoot.querySelector("meal-order-drawer"); + assert.equal(drawer.tagName.toLocaleLowerCase(), MealOrderApp.MealOrderDrawer.is); + done(); + }); + + test('should instantiate the `meal-order-menu-container` component ' + + 'with data-page `menu`', function () { + setLocation('/#/menu/2018-03-23'); + const pages = component.shadowRoot.querySelector('#app-header-layout-iron'); + pages.forceSynchronousItemUpdate(); + assert.equal(pages.selectedItem.tagName.toLocaleLowerCase(), MealOrderApp.MealOrderMenuContainer.is); + }); }); - diff --git a/client/user/test/mealorder/meal-order-toolbar_test.html b/client/user/test/mealorder/meal-order-toolbar_test.html new file mode 100644 index 00000000..ae489529 --- /dev/null +++ b/client/user/test/mealorder/meal-order-toolbar_test.html @@ -0,0 +1,78 @@ + + + + + + + meal-order-toolbar test + + + + + + + + + + + + + + diff --git a/client/user/test/mealorder/menu/meal-order-drawer_test.html b/client/user/test/mealorder/menu/meal-order-drawer_test.html new file mode 100644 index 00000000..fd455abc --- /dev/null +++ b/client/user/test/mealorder/menu/meal-order-drawer_test.html @@ -0,0 +1,115 @@ + + + + + + + meal-order-client test + + + + + + + + + + + + + + + diff --git a/client/user/test/mealorder/menu/meal-order-menu-container_test.html b/client/user/test/mealorder/menu/meal-order-menu-container_test.html new file mode 100644 index 00000000..dde58985 --- /dev/null +++ b/client/user/test/mealorder/menu/meal-order-menu-container_test.html @@ -0,0 +1,67 @@ + + + + + + + meal-order-menu-container test + + + + + + + + + + + + + + + diff --git a/client/user/test/mealorder/menu/meal-order-user-cart-actions_test.html b/client/user/test/mealorder/menu/meal-order-user-cart-actions_test.html new file mode 100644 index 00000000..4ef9a2e1 --- /dev/null +++ b/client/user/test/mealorder/menu/meal-order-user-cart-actions_test.html @@ -0,0 +1,107 @@ + + + + + + + meal-order-user-cart action test + + + + + + + + + + + + + + + + diff --git a/client/user/test/mealorder/menu/meal-order-user-cart_test.html b/client/user/test/mealorder/menu/meal-order-user-cart_test.html new file mode 100644 index 00000000..fdd3190b --- /dev/null +++ b/client/user/test/mealorder/menu/meal-order-user-cart_test.html @@ -0,0 +1,70 @@ + + + + + + + meal-order-user-cart test + + + + + + + + + + + + + + + + diff --git a/client/user/test/mealorder/menu/meal-order-user-order_test.html b/client/user/test/mealorder/menu/meal-order-user-order_test.html new file mode 100644 index 00000000..b9ec31b4 --- /dev/null +++ b/client/user/test/mealorder/menu/meal-order-user-order_test.html @@ -0,0 +1,79 @@ + + + + + + + + + meal-order-user-order test + + + + + + + + + + + + + + + + + diff --git a/client/user/test/mealorder/menu/meal-order-vendor-menu_test.html b/client/user/test/mealorder/menu/meal-order-vendor-menu_test.html new file mode 100644 index 00000000..a7e50d51 --- /dev/null +++ b/client/user/test/mealorder/menu/meal-order-vendor-menu_test.html @@ -0,0 +1,87 @@ + + + + + + + meal-order-vendor-menu test + + + + + + + + + + + + + + + + + diff --git a/client/user/test/mealorder/menu/meal-order-vendor-menus_test.html b/client/user/test/mealorder/menu/meal-order-vendor-menus_test.html new file mode 100644 index 00000000..63b3ba95 --- /dev/null +++ b/client/user/test/mealorder/menu/meal-order-vendor-menus_test.html @@ -0,0 +1,60 @@ + + + + + + + meal-order-vendor-menu test + + + + + + + + + + + + + + + + diff --git a/client/user/test/mealorder/test_variables.js b/client/user/test/mealorder/test_variables.js new file mode 100644 index 00000000..4a4e5b9e --- /dev/null +++ b/client/user/test/mealorder/test_variables.js @@ -0,0 +1,83 @@ +/* + * Copyright 2018, TeamDev Ltd. All rights reserved. + * + * Redistribution and use in source and/or binary forms, with or without + * modification, must retain the above copyright notice and the following + * disclaimer. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +{ + window.MealOrderAppTest = window.MealOrderAppTest || {}; + + MealOrderAppTest.initialMenu = [{ + vendor: 'Пюре', + date: new Date('2018-03-22'), + categories: [{ + categoryName: 'Первое блюдо', dishes: [ + {title: 'Суп гречневый', price: 35}, + {title: 'Солянка', price: 40}, + {title: 'Суп гороховый', price: 140}, + {title: 'Уха', price: 35}, + {title: 'Суп-пюре грибной', price: 40}] + } + , { + categoryName: 'Второе блюдо', dishes: [ + {title: 'Утиные крылышки', price: 40}, + {title: 'Куриные крылышки', price: 45}] + } + ] + }]; + + MealOrderAppTest.ininitalOrder = [{ + date: new Date('2018-03-21'), + order: [{ + vendor: "Пюре", + dishes: [ + {title: 'Борщ украинский', price: 35, quantity: 1}, + {title: 'Солянка', price: 40, quantity: 1}, + {title: 'Суп гороховый', price: 40, quantity: 1}, + {title: 'Уха', price: 35, quantity: 1}, + {title: 'Суп-пюре грибной', price: 40, quantity: 1}, + {title: 'Суп куриный', price: 40, quantity: 1},] + }, { + vendor: 'Позитив', + dishes: [{title: 'Суп куриный', price: 35, quantity: 1}, { + title: 'Стейк из лосося', + price: 35, + quantity: 1 + }] + }] + }]; + + MealOrderAppTest.ininitalHistory = [{ + date: new Date('2018-03-20'), + order: [{ + vendor: "Пюре", + dishes: [ + {title: 'Борщ украинский', price: 35, quantity: 1}, + {title: 'Солянка', price: 40, quantity: 1}, + {title: 'Суп гороховый', price: 40, quantity: 1}, + {title: 'Уха', price: 35, quantity: 1}, + {title: 'Суп-пюре грибной', price: 40, quantity: 1}, + {title: 'Суп куриный', price: 40, quantity: 1},] + }, { + vendor: 'Позитив', + dishes: [{title: 'Суп куриный', price: 35, quantity: 1}, { + title: 'Стейк из лосося', + price: 35, + quantity: 1 + }] + }] + }]; +} \ No newline at end of file