From ee80f56c7970554680625c631789f037d00ca67d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Mon, 10 Dec 2018 17:33:00 +0100 Subject: [PATCH 1/8] Run lint from the docker container We want to run everything, including eslint, from the docker container. As a next step we would run software tests from the docker container. Installing the correct version of docker-compose is required, the default version docker-compose on Travis is older than 3.7. --- .travis.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index bbd211c18..ebe56cfed 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,18 +1,28 @@ language: node_js node_js: - "10" -services: - - docker cache: yarn: true directories: - node_modules +services: + - docker + +env: + - DOCKER_COMPOSE_VERSION=1.23.2 + +before_install: + - sudo rm /usr/local/bin/docker-compose + - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose + - chmod +x docker-compose + - sudo mv docker-compose /usr/local/bin install: - docker build --build-arg BUILD_COMMIT=$TRAVIS_COMMIT -t humanconnection/nitro-web . + - docker-compose up -d script: - - docker run humanconnection/nitro-web yarn run lint + - docker-compose exec webapp yarn run lint after_success: # - wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh From 7a517131e3459187d2e1f421b6b5c018901f103d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Mon, 10 Dec 2018 17:35:04 +0100 Subject: [PATCH 2/8] Re-add success notifications Those success notifications were just fine. --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index ebe56cfed..76b4b532f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,9 +25,9 @@ script: - docker-compose exec webapp yarn run lint after_success: - # - wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh - # - chmod +x send.sh - # - ./send.sh success $WEBHOOK_URL + - wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh + - chmod +x send.sh + - ./send.sh success $WEBHOOK_URL - if [ $TRAVIS_BRANCH == "master" ] && [ $TRAVIS_EVENT_TYPE == "push" ]; then docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD"; docker tag humanconnection/nitro-web humanconnection/nitro-web:latest; From 31b017f7f6234ed9c5abf5e3ad5a1b1bf909069e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Mon, 10 Dec 2018 17:35:41 +0100 Subject: [PATCH 3/8] Trigger fullstack tests from this repository --- .travis.yml | 1 + scripts/run_fullstack_tests.sh | 9 +++++++++ 2 files changed, 10 insertions(+) create mode 100755 scripts/run_fullstack_tests.sh diff --git a/.travis.yml b/.travis.yml index 76b4b532f..333fae013 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,7 @@ env: - DOCKER_COMPOSE_VERSION=1.23.2 before_install: + - scripts/run_fullstack_tests.sh # trigger full stack testing in a different repository - sudo rm /usr/local/bin/docker-compose - curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose - chmod +x docker-compose diff --git a/scripts/run_fullstack_tests.sh b/scripts/run_fullstack_tests.sh new file mode 100755 index 000000000..c99bd84a2 --- /dev/null +++ b/scripts/run_fullstack_tests.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +if [[ -v TRAVIS_TOKEN ]]; then + # You need a Travis token to trigger the build on our meta repository. + # This token will not be available on forks of this repo. + curl -L https://raw.githubusercontent.com/Human-Connection/Human-Connection/master/scripts/trigger_build.sh > trigger_build.sh + chmod +x trigger_build.sh + ./trigger_build.sh +fi From 8b324fc8dd0860c864838546b53cdd92a684b441 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Mon, 10 Dec 2018 17:39:47 +0100 Subject: [PATCH 4/8] Download trigger_build in folder scripts/ This way, it does not get added to our docker images which we upload to docker hub. --- .dockerignore | 1 + scripts/run_fullstack_tests.sh | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.dockerignore b/.dockerignore index f363d4044..fa06a985d 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,5 +6,6 @@ npm-debug.log Dockerfile docker-compose*.yml +scripts/ .env diff --git a/scripts/run_fullstack_tests.sh b/scripts/run_fullstack_tests.sh index c99bd84a2..5176c493c 100755 --- a/scripts/run_fullstack_tests.sh +++ b/scripts/run_fullstack_tests.sh @@ -3,7 +3,7 @@ if [[ -v TRAVIS_TOKEN ]]; then # You need a Travis token to trigger the build on our meta repository. # This token will not be available on forks of this repo. - curl -L https://raw.githubusercontent.com/Human-Connection/Human-Connection/master/scripts/trigger_build.sh > trigger_build.sh - chmod +x trigger_build.sh - ./trigger_build.sh + curl -L https://raw.githubusercontent.com/Human-Connection/Human-Connection/master/scripts/trigger_build.sh > scripts/trigger_build.sh + chmod +x scripts/trigger_build.sh + ./scripts/trigger_build.sh fi From ccb16fe795fc754adf8566dbc20cde965e066ccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Tue, 11 Dec 2018 00:29:36 +0100 Subject: [PATCH 5/8] Update @vue/test-utils + @vue/server-test-utils --- package.json | 3 +- yarn.lock | 81 +++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 72 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 07e97795c..5392286bc 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,8 @@ }, "devDependencies": { "@vue/eslint-config-prettier": "^4.0.1", - "@vue/test-utils": "^1.0.0-beta.25", + "@vue/server-test-utils": "^1.0.0-beta.27", + "@vue/test-utils": "^1.0.0-beta.27", "babel-eslint": "^10.0.1", "babel-jest": "^23.6.0", "babel-preset-env": "^1.7.0", diff --git a/yarn.lock b/yarn.lock index cde663a19..d7ecfc8a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1159,10 +1159,17 @@ eslint-plugin-prettier "^3.0.0" prettier "^1.15.2" -"@vue/test-utils@^1.0.0-beta.25": - version "1.0.0-beta.26" - resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.0-beta.26.tgz#1ae7e1dc2bef4f49f9dbfdfecad342d17d6c5c88" - integrity sha512-2bvTgdh4Rh9NqeIrH+rah6AjXUHYxFqLO+NoOMqWXYqSvk1PGgvI5o5sT6Pty4HklIReOZxWxsMpgnJFK9rW+A== +"@vue/server-test-utils@^1.0.0-beta.27": + version "1.0.0-beta.27" + resolved "https://registry.yarnpkg.com/@vue/server-test-utils/-/server-test-utils-1.0.0-beta.27.tgz#0c61cb724d04bf44c70938b4a6054e73e914492a" + integrity sha512-HKwm1Nw180qNgknPyok/XWJF4ojBZC5vSANPf+f1WR2jYsSc0vvAxUyX2Qeq4F7KLXrfsFwdkfH3a5BxdrA9tg== + dependencies: + cheerio "^1.0.0-rc.2" + +"@vue/test-utils@^1.0.0-beta.27": + version "1.0.0-beta.27" + resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.0-beta.27.tgz#7e5f7b7180c00e28a4ca55c0ff0a7e754377fdb2" + integrity sha512-Lzrd4ZBkS70Tl8JbXbDrN/NcSaH9aZT6+7emU3QhTJ+CrorJpyFDA1dkvSIhH+rDTs8sHFbGeXjXV/qorXxtRw== dependencies: dom-event-types "^1.0.0" lodash "^4.17.4" @@ -2953,6 +2960,18 @@ check-types@^7.3.0: resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4" integrity sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg== +cheerio@^1.0.0-rc.2: + version "1.0.0-rc.2" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" + integrity sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs= + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash "^4.15.0" + parse5 "^3.0.1" + chokidar@^2.0.2, chokidar@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" @@ -3501,7 +3520,7 @@ css-select-base-adapter@~0.1.0: resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== -css-select@^1.1.0: +css-select@^1.1.0, css-select@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= @@ -3914,7 +3933,7 @@ dom-event-types@^1.0.0: resolved "https://registry.yarnpkg.com/dom-event-types/-/dom-event-types-1.0.0.tgz#5830a0a29e1bf837fe50a70cd80a597232813cae" integrity sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ== -dom-serializer@0: +dom-serializer@0, dom-serializer@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" integrity sha1-BzxpdUbOB4DOI75KKOKT5AvDDII= @@ -3932,6 +3951,11 @@ domelementtype@1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.2.1.tgz#578558ef23befac043a1abb0db07635509393479" integrity sha512-SQVCLFS2E7G5CRCMdn6K9bIhRj1bS6QBWZfF0TUPh4V/BbqrQ619IdSS3/izn0FZ+9l+uODzaZjb08fjOfablA== +domelementtype@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + domelementtype@~1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" @@ -3951,6 +3975,13 @@ domhandler@2.1: dependencies: domelementtype "1" +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + domutils@1.1: version "1.1.6" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" @@ -3966,7 +3997,7 @@ domutils@1.5.1: dom-serializer "0" domelementtype "1" -domutils@^1.7.0: +domutils@^1.5.1, domutils@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== @@ -4109,7 +4140,7 @@ enhanced-resolve@^4.1.0: memory-fs "^0.4.0" tapable "^1.0.0" -entities@~1.1.1: +entities@^1.1.1, entities@~1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== @@ -5276,6 +5307,18 @@ html-webpack-plugin@^3.2.0: toposort "^1.0.0" util.promisify "1.0.0" +htmlparser2@^3.9.1: + version "3.10.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz#5f5e422dcf6119c0d983ed36260ce9ded0bee464" + integrity sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ== + dependencies: + domelementtype "^1.3.0" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.0.6" + htmlparser2@~3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" @@ -6706,7 +6749,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.x, lodash@^4.0.0, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.10: +lodash@4.x, lodash@^4.0.0, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.10: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== @@ -7705,6 +7748,13 @@ parse5@4.0.0: resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== +parse5@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" + integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA== + dependencies: + "@types/node" "*" + parseurl@~1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" @@ -8821,6 +8871,15 @@ readable-stream@1.1.x: isarray "0.0.1" string_decoder "~0.10.x" +readable-stream@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.0.6.tgz#351302e4c68b5abd6a2ed55376a7f9a25be3057a" + integrity sha512-9E1oLoOWfhSXHGv6QlwXJim7uNzd9EVlWK+21tCU9Ju/kR0/p2AZYPz4qSchgO8PlLIH4FpZYfzwS+rEksZjIg== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -9735,7 +9794,7 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string_decoder@^1.0.0: +string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== @@ -10385,7 +10444,7 @@ useragent@^2.2.1: lru-cache "4.1.x" tmp "0.0.x" -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= From 5ed0954a4d07c39e624928e630c563ce46507525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Tue, 11 Dec 2018 00:31:42 +0100 Subject: [PATCH 6/8] Just ignore the test for the styleguide - passing --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 5392286bc..c9d51e7a3 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,8 @@ "^@/(.*)$": "/src/$1", "^@@/(.*)$": "/styleguide/src/system/$1", "^~/(.*)$": "/$1" - } + }, + "modulePathIgnorePatterns": ["/styleguide"] }, "dependencies": { "@nuxtjs/apollo": "^4.0.0-rc3", From 809a250f1fc836341372984a6f771867c7a86999 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Tue, 11 Dec 2018 00:33:09 +0100 Subject: [PATCH 7/8] Run component tests on Travis CI --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 333fae013..4f357a2c3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,6 +24,7 @@ install: script: - docker-compose exec webapp yarn run lint + - docker-compose exec webapp yarn run test after_success: - wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh From 92b06a352c018932ebab7dc8027fd1b3b7f6625b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Tue, 11 Dec 2018 01:36:45 +0100 Subject: [PATCH 8/8] Try write a component test for categories page @visualjerk could you help us out on this PR? I'm trying to get rid of this error: ``` Unknown custom element: - did you register the component correctly? For recursive components, make sure to provide the "name" option. ``` How do we tell @vue/test-utils to stub globally registered components? Second, I don't understand why the resulting html() of the categories components looks so odd: ```

Themen / Kategorien

``` Why on earth does the categories array end up in the `categories` property of `ds-heading` component? @visualjerk and @appinteractive have a look, please :kissing_heart: --- pages/admin/categories.spec.js | 67 +++++++++++++++++++ pages/admin/categories.vue | 8 +++ .../components/data-display/Table/Table.vue | 4 ++ 3 files changed, 79 insertions(+) create mode 100644 pages/admin/categories.spec.js diff --git a/pages/admin/categories.spec.js b/pages/admin/categories.spec.js new file mode 100644 index 000000000..a3b44de0d --- /dev/null +++ b/pages/admin/categories.spec.js @@ -0,0 +1,67 @@ +import { shallowMount, mount } from '@vue/test-utils' +import Categories from './categories.vue' + +const someCategories = [ + { + id: 'cat1', + name: 'Just For Fun', + slug: 'justforfun', + icon: 'smile', + postCount: 5 + }, + { + id: 'cat2', + name: 'Happyness & Values', + slug: 'happyness-values', + icon: 'heart-o', + postCount: 2 + }, + { + id: 'cat3', + name: 'Health & Wellbeing', + slug: 'health-wellbeing', + icon: 'medkit', + postCount: 1 + }, + { + id: 'cat4', + name: 'Environment & Nature', + slug: 'environment-nature', + icon: 'tree', + postCount: 1 + }, + { + id: 'cat5', + name: 'Animal Protection', + slug: 'animalprotection', + icon: 'paw', + postCount: 1 + } +] + +describe('Categories.vue', () => { + let wrapper + + beforeEach(() => { + wrapper = mount(Categories, {}) + }) + + it('renders', () => { + expect(wrapper.is('div')).toBe(true) + }) + + describe('given some categories', () => { + beforeEach(() => { + wrapper = mount(Categories, { + propsData: { + Categories: someCategories + } + }) + }) + + it('renders a row for each category', () => { + console.log(wrapper.html()) + expect(wrapper.findAll('tr')).toHaveLength(5) + }) + }) +}) diff --git a/pages/admin/categories.vue b/pages/admin/categories.vue index e09db79c0..ddd5f72f8 100644 --- a/pages/admin/categories.vue +++ b/pages/admin/categories.vue @@ -20,8 +20,16 @@