diff --git a/.gitignore b/.gitignore index a5c50112..df81c954 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ gulp/res/icons/* tmp/ .idea/ coverage/ +junit.xml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..84fba210 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,14 @@ +image: node:latest + +javascript: + stage: test + rules: + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + script: + - 'npm install' + - 'jest --ci --reporters=default --reporters=jest-junit --testPathIgnorePatterns=./test/' + artifacts: + when: always + reports: + junit: + - junit.xml diff --git a/package-lock.json b/package-lock.json index f20a472f..94f16533 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,9 @@ "unix-crypt-td-js": "^1.1.4" }, "devDependencies": { - "jest": "^27.5.1" + "jest": "^27.5.1", + "jest-cli": "^27.5.1", + "jest-junit": "^13.1.0" } }, "node_modules/@ampproject/remapping": { @@ -7001,6 +7003,21 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-junit": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-13.1.0.tgz", + "integrity": "sha512-ECbhzEG3Oe2IH3Mnwcv2vAXM4qTbcObN/gTUzwKPlpaNsf2G/zlj/teEUqRGV17YQiQ4AqzTf3pCO7W59DKVIw==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "strip-ansi": "^6.0.1", + "uuid": "^8.3.2", + "xml": "^1.0.1" + }, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/jest-leak-detector": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", @@ -13023,6 +13040,12 @@ } } }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", + "dev": true + }, "node_modules/xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", @@ -18544,6 +18567,18 @@ "throat": "^6.0.1" } }, + "jest-junit": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-13.1.0.tgz", + "integrity": "sha512-ECbhzEG3Oe2IH3Mnwcv2vAXM4qTbcObN/gTUzwKPlpaNsf2G/zlj/teEUqRGV17YQiQ4AqzTf3pCO7W59DKVIw==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "strip-ansi": "^6.0.1", + "uuid": "^8.3.2", + "xml": "^1.0.1" + } + }, "jest-leak-detector": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", @@ -23264,6 +23299,12 @@ "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", "requires": {} }, + "xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", + "dev": true + }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", diff --git a/package.json b/package.json index 142a17ef..014d46af 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,9 @@ "unix-crypt-td-js": "^1.1.4" }, "devDependencies": { - "jest": "^27.5.1" + "jest": "^27.5.1", + "jest-cli": "^27.5.1", + "jest-junit": "^13.1.0" }, "scripts": { "test": "npm run test:unit",