package.json: add pinia and @pinia/testing

The upcoming Multiblocks project will make use of a Pinia store, which
is already shipped in MediaWiki via ResourceLoader. In order to continue
to test Vue components that make use of a store, we need the Pinia
testing utilities.

The 'pinia' package is locked to the same version that's in RL, 2.0.16,
while '@pinia/testing' is locked at 0.0.12, the same version used by
some extensions such as GrowthExperiments.

Bug: T251790
Change-Id: Ia88d987bf7e5afa1a17d63b4ebc96448ccec2f6c
This commit is contained in:
MusikAnimal 2024-10-15 17:39:43 -04:00
parent 84803d8a50
commit f717259a14
3 changed files with 154 additions and 6 deletions

View file

@ -158,12 +158,14 @@ For notes on 1.42.x and older releases, see HISTORY.
* (T251790) Some development-only external libraries have been added for the new
testing tools for front-end Vue components:
* Added jest and jest-environment-jsdom at v29.7.0.
* Added @vue/test-utils v2.4.6.
* Added @vue/vue3-jest v29.2.6.
* Added @babel/preset-env v7.25.4.
* Codex, already available via ResourceLoader, now has the npm versions, i.e.
@wikimedia/codex and @wikimedia/codex-icons, also installed for this testing.
* Added jest and jest-environment-jsdom at v29.7.0.
* Added @vue/test-utils v2.4.6.
* Added @vue/vue3-jest v29.2.6.
* Added @babel/preset-env v7.25.4.
* Added pinia v2.0.16 (already available via ResourceLoader).
* Added @pinia/testing v0.0.12.
* Codex, already available via ResourceLoader, now has the npm versions, i.e.
@wikimedia/codex and @wikimedia/codex-icons, also installed for testing.
* …
==== Changed external libraries ====

144
package-lock.json generated
View file

@ -8,6 +8,7 @@
"devDependencies": {
"@apidevtools/swagger-parser": "^10.1.0",
"@babel/preset-env": "7.25.4",
"@pinia/testing": "0.0.12",
"@vue/test-utils": "2.4.6",
"@vue/vue3-jest": "29.2.6",
"@wdio/cli": "7.33.0",
@ -36,6 +37,7 @@
"karma-chrome-launcher": "3.1.0",
"karma-mocha-reporter": "2.2.5",
"karma-qunit": "4.2.0",
"pinia": "2.0.16",
"qunit": "2.20.0",
"stylelint-config-wikimedia": "0.17.2",
"svgo": "3.2.0",
@ -3504,6 +3506,47 @@
"integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==",
"dev": true
},
"node_modules/@pinia/testing": {
"version": "0.0.12",
"resolved": "https://registry.npmjs.org/@pinia/testing/-/testing-0.0.12.tgz",
"integrity": "sha512-OGJ5kZihiuNua9trREAVLiv8wAlxT2+gZAz3Cen1L4ch51MbSgY5/nbo9htYsP2my9dhbggBhecgYWlhejhRcQ==",
"dev": true,
"dependencies": {
"vue-demi": "*"
},
"funding": {
"url": "https://github.com/sponsors/posva"
},
"peerDependencies": {
"pinia": ">=2.0.14"
}
},
"node_modules/@pinia/testing/node_modules/vue-demi": {
"version": "0.14.10",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
"dev": true,
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/antfu"
},
"peerDependencies": {
"@vue/composition-api": "^1.0.0-rc.1",
"vue": "^3.0.0-0 || ^2.6.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
@ -4222,6 +4265,12 @@
"@vue/shared": "3.4.27"
}
},
"node_modules/@vue/devtools-api": {
"version": "6.6.4",
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
"dev": true
},
"node_modules/@vue/reactivity": {
"version": "3.4.27",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.27.tgz",
@ -13839,6 +13888,58 @@
"node": ">=4"
}
},
"node_modules/pinia": {
"version": "2.0.16",
"resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.16.tgz",
"integrity": "sha512-9/LMVO+/epny1NBfC77vnps4g3JRezxhhoF1xLUk8mZkUIxVnwfEAIRiAX8mYBTD/KCwZqnDMqXc8w3eU0FQGg==",
"dev": true,
"dependencies": {
"@vue/devtools-api": "^6.1.4",
"vue-demi": "*"
},
"funding": {
"url": "https://github.com/sponsors/posva"
},
"peerDependencies": {
"@vue/composition-api": "^1.4.0",
"typescript": ">=4.4.4",
"vue": "^2.6.14 || ^3.2.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
},
"typescript": {
"optional": true
}
}
},
"node_modules/pinia/node_modules/vue-demi": {
"version": "0.14.10",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
"dev": true,
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/antfu"
},
"peerDependencies": {
"@vue/composition-api": "^1.0.0-rc.1",
"vue": "^3.0.0-0 || ^2.6.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/pinkie": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
@ -20028,6 +20129,24 @@
"integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==",
"dev": true
},
"@pinia/testing": {
"version": "0.0.12",
"resolved": "https://registry.npmjs.org/@pinia/testing/-/testing-0.0.12.tgz",
"integrity": "sha512-OGJ5kZihiuNua9trREAVLiv8wAlxT2+gZAz3Cen1L4ch51MbSgY5/nbo9htYsP2my9dhbggBhecgYWlhejhRcQ==",
"dev": true,
"requires": {
"vue-demi": "*"
},
"dependencies": {
"vue-demi": {
"version": "0.14.10",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
"dev": true,
"requires": {}
}
}
},
"@pkgjs/parseargs": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
@ -20669,6 +20788,12 @@
"@vue/shared": "3.4.27"
}
},
"@vue/devtools-api": {
"version": "6.6.4",
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==",
"dev": true
},
"@vue/reactivity": {
"version": "3.4.27",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.27.tgz",
@ -28066,6 +28191,25 @@
"integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
"dev": true
},
"pinia": {
"version": "2.0.16",
"resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.16.tgz",
"integrity": "sha512-9/LMVO+/epny1NBfC77vnps4g3JRezxhhoF1xLUk8mZkUIxVnwfEAIRiAX8mYBTD/KCwZqnDMqXc8w3eU0FQGg==",
"dev": true,
"requires": {
"@vue/devtools-api": "^6.1.4",
"vue-demi": "*"
},
"dependencies": {
"vue-demi": {
"version": "0.14.10",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz",
"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
"dev": true,
"requires": {}
}
}
},
"pinkie": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",

View file

@ -16,6 +16,7 @@
"devDependencies": {
"@apidevtools/swagger-parser": "^10.1.0",
"@babel/preset-env": "7.25.4",
"@pinia/testing": "0.0.12",
"@vue/test-utils": "2.4.6",
"@vue/vue3-jest": "29.2.6",
"@wdio/cli": "7.33.0",
@ -44,6 +45,7 @@
"karma-chrome-launcher": "3.1.0",
"karma-mocha-reporter": "2.2.5",
"karma-qunit": "4.2.0",
"pinia": "2.0.16",
"qunit": "2.20.0",
"stylelint-config-wikimedia": "0.17.2",
"svgo": "3.2.0",