mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
600f1e35d4
If we want to upgrade Typescript to version >4 (in this repo or another using owl), we also need jest >25. Jest <26 do not support Typescript >4. However, jest >26 has a few breaking changes that completely breaks owl in tests. This commit updates jest to the current latest version (27) and adapts the code accordingly. A few words on what changed --------------------------- 1. the default test environment is no longer `jsdom`. It is now manually configured to restore the previous env. 2. the jsdom version has been upgraded. This brings a few breaking changes, detailed later. 3. there's a bug in jsdom >16.4. Manually created `<t/>` (by qweb compilation) are recognized as "T" and not "t". Qweb thinks it's a component (since the first letter is capitalized), but it's not a component: boom, everything breaks. A fix has been proposed here jsdom/jsdom#3240. But it's not likely to land in jest in the short term (jest would need to update its dependency to the next major jsdom version). This commit works around the problem for now by creating `<t/>` slighty differently such that they are in an XML document from the start (and not HTML document). 4. the xml parser implementation changed to increase the strictness and correctness of XML parsing, according to specifications. A few tests needed to be adapted. https://github.com/jsdom/jsdom/commit/c96decf837ece54bdc550dfb7dca7e5d6c97bc2d 5. jest matcher `toHaveProperty` now check inherited properties. This breaks a few tests. Since the breaking assertions didn't bring a lot of value from a behavior point of view (it was more "white box" technical tests), they are removed in this commit https://github.com/facebook/jest/commit/1256f76a5a83034b51c7524142b60b099f69a7ab 6. jsdom now implements the behavior of links (`<a/>`). One test was `click`ing on such a link, with the right click. Jsdom now tries to navigate to the pointed URl...but crashes because navigation is not implemented :( It turns out the test is probably not a valid/realistic scenario. On every tested browser (chrome - chromium - brave - edge -firefox - safari), a right click with the mouse triggers a `contextmenu` event and no `click` event. https://github.com/jsdom/jsdom/commit/cc95abc576f596ff7f3eaf8245f376e1f21aa485
86 lines
2.2 KiB
JSON
86 lines
2.2 KiB
JSON
{
|
|
"name": "@odoo/owl",
|
|
"version": "1.4.4",
|
|
"description": "Odoo Web Library (OWL)",
|
|
"main": "dist/owl.cjs.js",
|
|
"browser": "dist/owl.iife.js",
|
|
"module": "dist/owl.es.js",
|
|
"types": "dist/types/index.d.ts",
|
|
"files": [
|
|
"dist"
|
|
],
|
|
"engines": {
|
|
"node": ">=12.18.3"
|
|
},
|
|
"scripts": {
|
|
"build:bundle": "rollup -c",
|
|
"build": "npm run build:bundle",
|
|
"test": "jest",
|
|
"test:watch": "jest --watch",
|
|
"tools:serve": "python3 tools/server.py || python tools/server.py",
|
|
"tools": "npm run build && npm run tools:serve",
|
|
"pretools:watch": "npm run build",
|
|
"tools:watch": "npm-run-all --parallel tools:serve \"build:* -- --watch\"",
|
|
"prettier": "prettier {src/*.ts,src/**/*.ts,tests/*.ts,tests/**/*.ts,doc/*.md,doc/**/*.md} --write",
|
|
"check-formatting": "prettier {src/*.ts,src/**/*.ts,tests/*.ts,tests/**/*.ts,doc/*.md,doc/**/*.md} --check",
|
|
"publish": "npm run build && npm publish",
|
|
"release": "node tools/release.js"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/odoo/owl.git"
|
|
},
|
|
"author": "Odoo",
|
|
"license": "LGPL-3.0-only",
|
|
"bugs": {
|
|
"url": "https://github.com/odoo/owl/issues"
|
|
},
|
|
"homepage": "https://github.com/odoo/owl#readme",
|
|
"devDependencies": {
|
|
"@types/jest": "^27.0.1",
|
|
"@types/node": "^14.11.8",
|
|
"chalk": "^3.0.0",
|
|
"cpx": "^1.5.0",
|
|
"current-git-branch": "^1.1.0",
|
|
"git-rev-sync": "^1.12.0",
|
|
"github-api": "^3.3.0",
|
|
"jest": "^27.1.0",
|
|
"jest-environment-jsdom": "^27.1.0",
|
|
"live-server": "^1.2.1",
|
|
"npm-run-all": "^4.1.5",
|
|
"prettier": "^2.0.4",
|
|
"rollup": "^2.56.3",
|
|
"rollup-plugin-terser": "^7.0.2",
|
|
"rollup-plugin-typescript2": "^0.30.0",
|
|
"sass": "^1.16.1",
|
|
"source-map-support": "^0.5.10",
|
|
"ts-jest": "^27.0.5",
|
|
"typescript": "^3.7.2",
|
|
"uglify-es": "^3.3.9"
|
|
},
|
|
"jest": {
|
|
"testEnvironment": "jsdom",
|
|
"roots": [
|
|
"<rootDir>/src",
|
|
"<rootDir>/tests"
|
|
],
|
|
"transform": {
|
|
"^.+\\.ts?$": "ts-jest"
|
|
},
|
|
"verbose": false,
|
|
"testRegex": "(/tests/.*(test|spec))\\.ts?$",
|
|
"moduleFileExtensions": [
|
|
"ts",
|
|
"tsx",
|
|
"js",
|
|
"jsx",
|
|
"json",
|
|
"node"
|
|
]
|
|
},
|
|
"prettier": {
|
|
"printWidth": 100,
|
|
"endOfLine": "auto"
|
|
}
|
|
}
|