diff --git a/.cspell.json b/.cspell.json index af91ca295d..4875d6929e 100644 --- a/.cspell.json +++ b/.cspell.json @@ -77,6 +77,7 @@ "nodekey", "nwaku", "opendns", + "peaceiris", "peerhave", "portfinder", "prettierignore", @@ -123,7 +124,11 @@ "Привет", "مرحبا" ], - "flagWords": ["pubSub", "pubSubTopics", "pubSubTopic"], + "flagWords": [ + "pubSub", + "pubSubTopics", + "pubSubTopic" + ], "ignorePaths": [ "package.json", "package-lock.json", diff --git a/.github/workflows/test-node.yml b/.github/workflows/test-node.yml index 67071881c9..afe856b638 100644 --- a/.github/workflows/test-node.yml +++ b/.github/workflows/test-node.yml @@ -45,6 +45,33 @@ jobs: - run: ${{ (inputs.test_type == 'node-optional') && 'npm run test:optional --workspace=@waku/tests' || 'npm run test:node' }} + - name: Get allure history + if: always() + uses: actions/checkout@v3 + continue-on-error: true + with: + ref: gh-pages + path: gh-pages + + - name: Setup allure report + if: always() + uses: simple-elf/allure-report-action@master + id: allure-report + with: + allure_results: allure-results + gh_pages: gh-pages/node + allure_history: allure-history + keep_reports: 10 + + - name: Deploy report to Github Pages + if: always() + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_branch: gh-pages + publish_dir: allure-history + destination_dir: node + - name: Upload debug logs on failure uses: actions/upload-artifact@v3 if: failure() diff --git a/.gitignore b/.gitignore index c568f60ee6..0be6221908 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ docs test-results playwright-report example +allure-results \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index fbce43423a..9202967926 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,6 +25,7 @@ "@size-limit/preset-big-lib": "^8.2.4", "@typescript-eslint/eslint-plugin": "^6.6.0", "@typescript-eslint/parser": "^6.7.5", + "allure-mocha": "^2.9.2", "eslint": "^8.47.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-eslint-comments": "^3.2.0", @@ -40,6 +41,7 @@ "karma-webkit-launcher": "^2.1.0", "karma-webpack": "^5.0.0", "lint-staged": "^14.0.1", + "mocha": "^10.2.0", "playwright": "^1.38.1", "size-limit": "^9.0.0", "ts-loader": "^9.4.2", @@ -5507,6 +5509,36 @@ "ajv": "^6.9.1" } }, + "node_modules/allure-commandline": { + "version": "2.24.1", + "resolved": "https://registry.npmjs.org/allure-commandline/-/allure-commandline-2.24.1.tgz", + "integrity": "sha512-eNto3ipBq+O2B/f8/OwiS3E8R7jYENs3qv8jT7wMZmziYLANsISC9tX/FfEqR3FDiQlEOjkP7iyTEZ3ph53FPg==", + "dev": true, + "bin": { + "allure": "bin/allure" + } + }, + "node_modules/allure-js-commons": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/allure-js-commons/-/allure-js-commons-2.9.2.tgz", + "integrity": "sha512-Qvi+zMZQruklqcnqG/zHCnE209v1YiWGhO3H2aPW2aXC8Ockqd01a+w2lP4Qqp3SfC+WQDeAK2+pp+v+eNl8xQ==", + "dev": true, + "dependencies": { + "properties": "^1.2.1" + } + }, + "node_modules/allure-mocha": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/allure-mocha/-/allure-mocha-2.9.2.tgz", + "integrity": "sha512-JOWvqn6534VfrfGhOtjBtGUMMO3+zKKujay5dnfbWncGlIQK9c+qrDPvbTupBc9uIvIFT5EjSAtTYKPAAWz5EQ==", + "dev": true, + "dependencies": { + "allure-js-commons": "2.9.2" + }, + "peerDependencies": { + "mocha": ">=6.2.x" + } + }, "node_modules/ansi-align": { "version": "3.0.1", "license": "ISC", @@ -15015,7 +15047,8 @@ }, "node_modules/mocha": { "version": "10.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dependencies": { "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", @@ -15051,6 +15084,22 @@ "url": "https://opencollective.com/mochajs" } }, + "node_modules/mocha-multi-reporters": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/mocha-multi-reporters/-/mocha-multi-reporters-1.5.1.tgz", + "integrity": "sha512-Yb4QJOaGLIcmB0VY7Wif5AjvLMUFAdV57D2TWEva1Y0kU/3LjKpeRVmlMIfuO1SVbauve459kgtIizADqxMWPg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "lodash": "^4.17.15" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "mocha": ">=3.1.2" + } + }, "node_modules/mocha/node_modules/ansi-colors": { "version": "4.1.1", "license": "MIT", @@ -20878,6 +20927,15 @@ "node": ">= 4" } }, + "node_modules/properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/properties/-/properties-1.2.1.tgz", + "integrity": "sha512-qYNxyMj1JeW54i/EWEFsM1cVwxJbtgPp8+0Wg9XjNaK6VE/c4oRi6PNu5p7w1mNXEIQIjV5Wwn8v8Gz82/QzdQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, "node_modules/proto-list": { "version": "1.2.4", "license": "ISC" @@ -26173,6 +26231,8 @@ "@waku/message-encryption": "*", "@waku/peer-exchange": "*", "@waku/sdk": "*", + "allure-commandline": "^2.24.1", + "allure-mocha": "^2.9.2", "chai": "^4.3.7", "cspell": "^7.3.2", "datastore-core": "^9.2.3", @@ -26180,6 +26240,7 @@ "interface-datastore": "^8.2.5", "libp2p": "^0.46.12", "mocha": "^10.2.0", + "mocha-multi-reporters": "^1.5.1", "npm-run-all": "^4.1.5" }, "engines": { @@ -29409,6 +29470,8 @@ "@waku/peer-exchange": "*", "@waku/sdk": "*", "@waku/utils": "*", + "allure-commandline": "^2.24.1", + "allure-mocha": "^2.9.2", "app-root-path": "^3.1.0", "chai": "^4.3.7", "chai-as-promised": "^7.1.1", @@ -29420,6 +29483,7 @@ "libp2p": "^0.46.12", "lodash": "^4.17.21", "mocha": "^10.2.0", + "mocha-multi-reporters": "^1.5.1", "npm-run-all": "^4.1.5", "p-retry": "^6.1.0", "p-timeout": "^6.1.0", @@ -29953,6 +30017,30 @@ "dev": true, "requires": {} }, + "allure-commandline": { + "version": "2.24.1", + "resolved": "https://registry.npmjs.org/allure-commandline/-/allure-commandline-2.24.1.tgz", + "integrity": "sha512-eNto3ipBq+O2B/f8/OwiS3E8R7jYENs3qv8jT7wMZmziYLANsISC9tX/FfEqR3FDiQlEOjkP7iyTEZ3ph53FPg==", + "dev": true + }, + "allure-js-commons": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/allure-js-commons/-/allure-js-commons-2.9.2.tgz", + "integrity": "sha512-Qvi+zMZQruklqcnqG/zHCnE209v1YiWGhO3H2aPW2aXC8Ockqd01a+w2lP4Qqp3SfC+WQDeAK2+pp+v+eNl8xQ==", + "dev": true, + "requires": { + "properties": "^1.2.1" + } + }, + "allure-mocha": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/allure-mocha/-/allure-mocha-2.9.2.tgz", + "integrity": "sha512-JOWvqn6534VfrfGhOtjBtGUMMO3+zKKujay5dnfbWncGlIQK9c+qrDPvbTupBc9uIvIFT5EjSAtTYKPAAWz5EQ==", + "dev": true, + "requires": { + "allure-js-commons": "2.9.2" + } + }, "ansi-align": { "version": "3.0.1", "requires": { @@ -35602,6 +35690,8 @@ }, "mocha": { "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "requires": { "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", @@ -35773,6 +35863,16 @@ } } }, + "mocha-multi-reporters": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/mocha-multi-reporters/-/mocha-multi-reporters-1.5.1.tgz", + "integrity": "sha512-Yb4QJOaGLIcmB0VY7Wif5AjvLMUFAdV57D2TWEva1Y0kU/3LjKpeRVmlMIfuO1SVbauve459kgtIizADqxMWPg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "lodash": "^4.17.15" + } + }, "modify-values": { "version": "1.0.1" }, @@ -39142,6 +39242,12 @@ } } }, + "properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/properties/-/properties-1.2.1.tgz", + "integrity": "sha512-qYNxyMj1JeW54i/EWEFsM1cVwxJbtgPp8+0Wg9XjNaK6VE/c4oRi6PNu5p7w1mNXEIQIjV5Wwn8v8Gz82/QzdQ==", + "dev": true + }, "proto-list": { "version": "1.2.4" }, diff --git a/packages/tests/.mocha.reporters.json b/packages/tests/.mocha.reporters.json new file mode 100644 index 0000000000..13c4058678 --- /dev/null +++ b/packages/tests/.mocha.reporters.json @@ -0,0 +1,6 @@ +{ + "reporterEnabled": "spec, allure-mocha", + "allureMochaReporter": { + "outputDir": "allure-results" + } +} \ No newline at end of file diff --git a/packages/tests/.mocharc.json b/packages/tests/.mocharc.json index 06fc1304b9..322047872c 100644 --- a/packages/tests/.mocharc.json +++ b/packages/tests/.mocharc.json @@ -9,5 +9,9 @@ "exit": true, "retries": 4, "parallel": false, - "jobs": 6 + "jobs": 6, + "reporter": "mocha-multi-reporters", + "reporter-option": [ + "configFile=.mocha.reporters.json" + ] } diff --git a/packages/tests/package.json b/packages/tests/package.json index b5c5a844c8..0369920ee7 100644 --- a/packages/tests/package.json +++ b/packages/tests/package.json @@ -79,6 +79,8 @@ "@waku/message-encryption": "*", "@waku/peer-exchange": "*", "@waku/sdk": "*", + "allure-commandline": "^2.24.1", + "allure-mocha": "^2.9.2", "chai": "^4.3.7", "cspell": "^7.3.2", "datastore-core": "^9.2.3", @@ -86,6 +88,7 @@ "interface-datastore": "^8.2.5", "libp2p": "^0.46.12", "mocha": "^10.2.0", + "mocha-multi-reporters": "^1.5.1", "npm-run-all": "^4.1.5" } }