test: fix vscode language service e2e tests (#64197)

Fix the e2e test suite for the vscode language service extension and run it in CI.

PR Close #64197
This commit is contained in:
Alan Agius
2025-10-02 15:33:44 +00:00
committed by Miles Malerba
parent 5e61e8d3c3
commit 8146fc2817
15 changed files with 178 additions and 184 deletions
+80 -116
View File
@@ -1317,12 +1317,18 @@ importers:
'@types/jasmine':
specifier: ~5.1.9
version: 5.1.9
'@types/jasmine-reporters':
specifier: ~2.5.3
version: 2.5.3
'@types/node':
specifier: ^24.5.2
version: 24.5.2
'@types/vscode':
specifier: ^1.74.3
version: 1.104.0
'@vscode/test-electron':
specifier: ~2.5.2
version: 2.5.2
'@vscode/vsce':
specifier: ~3.6.1
version: 3.6.2
@@ -1356,15 +1362,15 @@ importers:
vscode-languageserver-textdocument:
specifier: 1.0.12
version: 1.0.12
vscode-test:
specifier: 1.6.1
version: 1.6.1
vscode-tmgrammar-test:
specifier: 0.1.3
version: 0.1.3
vscode-uri:
specifier: 3.1.0
version: 3.1.0
xvfb:
specifier: ^0.4.0
version: 0.4.0
vscode-ng-language-service/integration/pre_standalone_project:
dependencies:
@@ -1395,7 +1401,7 @@ importers:
devDependencies:
ng-packagr:
specifier: 21.0.0-next.4
version: 21.0.0-next.4(@angular/compiler-cli@21.0.0-next.5(@angular/compiler@21.0.0-next.5)(typescript@5.9.2))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2)))(tslib@2.8.1)(typescript@5.9.2)
version: 21.0.0-next.4(@angular/compiler-cli@21.0.0-next.5(@angular/compiler@21.0.0-next.5)(typescript@5.9.2))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@24.6.1)(typescript@5.9.2)))(tslib@2.8.1)(typescript@5.9.2)
typescript:
specifier: 5.9.2
version: 5.9.2
@@ -4542,10 +4548,6 @@ packages:
'@textlint/types@15.2.2':
resolution: {integrity: sha512-X2BHGAR3yXJsCAjwYEDBIk9qUDWcH4pW61ISfmtejau+tVqKtnbbvEZnMTb6mWgKU1BvTmftd5DmB1XVDUtY3g==}
'@tootallnate/once@1.1.2':
resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==}
engines: {node: '>= 6'}
'@tootallnate/once@2.0.0':
resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
engines: {node: '>= 10'}
@@ -4813,6 +4815,9 @@ packages:
'@types/istanbul-reports@3.0.4':
resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
'@types/jasmine-reporters@2.5.3':
resolution: {integrity: sha512-8aojAUdgdiD9VQbllBJb/9gny3lOjz9T5gyMcbYlKe6npwGVsarbr8v2JYSFJSZSuFYXcPVzFG2lLX3ib0j/DA==}
'@types/jasmine@5.1.9':
resolution: {integrity: sha512-8t4HtkW4wxiPVedMpeZ63n3vlWxEIquo/zc1Tm8ElU+SqVV7+D3Na2PWaJUp179AzTragMWVwkMv7mvty0NfyQ==}
@@ -5126,6 +5131,10 @@ packages:
'@vscode/l10n@0.0.18':
resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==}
'@vscode/test-electron@2.5.2':
resolution: {integrity: sha512-8ukpxv4wYe0iWMRQU18jhzJOHkeGKbnw7xWRX3Zw1WJA4cEKbHcmmLPdPrPtL6rhDcrlCZN+xKRpv09n4gRHYg==}
engines: {node: '>=16'}
'@vscode/vsce-sign-alpine-arm64@2.0.6':
resolution: {integrity: sha512-wKkJBsvKF+f0GfsUuGT0tSW0kZL87QggEiqNqK6/8hvqsXvpx8OsTEc3mnE1kejkh5r+qUyQ7PtF8jZYN0mo8Q==}
cpu: [arm64]
@@ -5769,10 +5778,6 @@ packages:
bidi-js@1.0.3:
resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==}
big-integer@1.6.52:
resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==}
engines: {node: '>=0.6'}
big.js@5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
@@ -5786,9 +5791,6 @@ packages:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
binary@0.3.0:
resolution: {integrity: sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==}
binaryextensions@6.11.0:
resolution: {integrity: sha512-sXnYK/Ij80TO3lcqZVV2YgfKN5QjUWIRk/XSm2J/4bd/lPko3lvk0O4ZppH6m+6hB2/GTu+ptNwVFe1xh+QLQw==}
engines: {node: '>=4'}
@@ -5810,9 +5812,6 @@ packages:
engines: {node: '>=6.9.x'}
hasBin: true
bluebird@3.4.7:
resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==}
bluebird@3.7.2:
resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
@@ -5890,20 +5889,12 @@ packages:
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
buffer-indexof-polyfill@1.0.2:
resolution: {integrity: sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==}
engines: {node: '>=0.10'}
buffer@5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
buffer@6.0.3:
resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
buffers@0.1.1:
resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==}
engines: {node: '>=0.2.0'}
bufferutil@4.0.9:
resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==}
engines: {node: '>=6.14.2'}
@@ -6001,9 +5992,6 @@ packages:
chainsaw@0.0.9:
resolution: {integrity: sha512-nG8PYH+/4xB+8zkV4G844EtfvZ5tTiLFoX3dZ4nhF4t3OCKIb9UvaFyNmeZO2zOSmRWzBoTD+napN6hiL+EgcA==}
chainsaw@0.1.0:
resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==}
chalk@1.1.3:
resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
engines: {node: '>=0.10.0'}
@@ -7044,9 +7032,6 @@ packages:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: '>= 0.4'}
duplexer2@0.1.4:
resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==}
duplexify@3.7.1:
resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==}
@@ -7659,11 +7644,6 @@ packages:
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
fstream@1.0.12:
resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==}
engines: {node: '>=0.6'}
deprecated: This package is no longer supported.
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
@@ -8084,10 +8064,6 @@ packages:
http-parser-js@0.5.10:
resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==}
http-proxy-agent@4.0.1:
resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==}
engines: {node: '>= 6'}
http-proxy-agent@5.0.0:
resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
engines: {node: '>= 6'}
@@ -8523,6 +8499,10 @@ packages:
resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
engines: {node: '>=10'}
is-unicode-supported@1.3.0:
resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==}
engines: {node: '>=12'}
is-unicode-supported@2.1.0:
resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==}
engines: {node: '>=18'}
@@ -9105,9 +9085,6 @@ packages:
linkify-it@5.0.0:
resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
listenercount@1.0.1:
resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==}
listr2@3.14.0:
resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==}
engines: {node: '>=10.0.0'}
@@ -9229,6 +9206,10 @@ packages:
resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
engines: {node: '>=10'}
log-symbols@6.0.0:
resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==}
engines: {node: '>=18'}
log-symbols@7.0.1:
resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==}
engines: {node: '>=18'}
@@ -9922,6 +9903,10 @@ packages:
resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
engines: {node: '>=10'}
ora@8.2.0:
resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==}
engines: {node: '>=18'}
ora@9.0.0:
resolution: {integrity: sha512-m0pg2zscbYgWbqRR6ABga5c3sZdEon7bSgjnlXC64kxtxLOyjRcbbUkLj7HFyy/FTD+P2xdBWu8snGhYI0jc4A==}
engines: {node: '>=20'}
@@ -11153,6 +11138,10 @@ packages:
resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
engines: {node: '>=14.16'}
sleep@6.1.0:
resolution: {integrity: sha512-Z1x4JjJxsru75Tqn8F4tnOFeEu3HjtITTsumYUiuz54sGKdISgLCek9AUlXlVVrkhltRFhNUsJDJE76SFHTDIQ==}
engines: {node: '>=0.8.0'}
slice-ansi@3.0.0:
resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==}
engines: {node: '>=8'}
@@ -12106,9 +12095,6 @@ packages:
resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
engines: {node: '>=8'}
unzipper@0.10.14:
resolution: {integrity: sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==}
update-browserslist-db@1.1.3:
resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
hasBin: true
@@ -12348,11 +12334,6 @@ packages:
vscode-oniguruma@1.7.0:
resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==}
vscode-test@1.6.1:
resolution: {integrity: sha512-086q88T2ca1k95mUzffvbzb7esqQNvJgiwY4h29ukPhFo8u+vXOOmelUoU5EQUHs3Of8+JuQ3oGdbVCqaxuTXA==}
engines: {node: '>=8.9.3'}
deprecated: This package has been renamed to @vscode/test-electron, please update to the new name
vscode-textmate@7.0.4:
resolution: {integrity: sha512-9hJp0xL7HW1Q5OgGe03NACo7yiCTMEk3WU/rtKXUbncLtdg6rVVNJnHwD88UhbIYU2KoxY0Dih0x+kIsmUKn2A==}
@@ -12690,6 +12671,9 @@ packages:
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
engines: {node: '>=0.4'}
xvfb@0.4.0:
resolution: {integrity: sha512-g55AbjcBL4Bztfn7kiUrR0ne8mMUsFODDJ+HFGf5OuHJqKKccpExX2Qgn7VF2eImw1eoh6+riXHser1J4agrFA==}
y18n@4.0.3:
resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
@@ -17055,8 +17039,6 @@ snapshots:
dependencies:
'@textlint/ast-node-types': 15.2.2
'@tootallnate/once@1.1.2': {}
'@tootallnate/once@2.0.0': {}
'@tootallnate/quickjs-emscripten@0.23.0': {}
@@ -17363,6 +17345,10 @@ snapshots:
dependencies:
'@types/istanbul-lib-report': 3.0.3
'@types/jasmine-reporters@2.5.3':
dependencies:
'@types/jasmine': 5.1.9
'@types/jasmine@5.1.9': {}
'@types/jasminewd2@2.0.13':
@@ -17691,6 +17677,16 @@ snapshots:
'@vscode/l10n@0.0.18': {}
'@vscode/test-electron@2.5.2':
dependencies:
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6(supports-color@10.2.2)
jszip: 3.10.1
ora: 8.2.0
semver: 7.7.2
transitivePeerDependencies:
- supports-color
'@vscode/vsce-sign-alpine-arm64@2.0.6':
optional: true
@@ -18424,8 +18420,6 @@ snapshots:
dependencies:
require-from-string: 2.0.2
big-integer@1.6.52: {}
big.js@5.2.2: {}
big.js@7.0.1: {}
@@ -18434,11 +18428,6 @@ snapshots:
binary-extensions@2.3.0: {}
binary@0.3.0:
dependencies:
buffers: 0.1.1
chainsaw: 0.1.0
binaryextensions@6.11.0:
dependencies:
editions: 6.22.0
@@ -18466,8 +18455,6 @@ snapshots:
dependencies:
minimist: 1.2.8
bluebird@3.4.7: {}
bluebird@3.7.2: {}
body-parser@1.20.3:
@@ -18575,8 +18562,6 @@ snapshots:
buffer-from@1.1.2: {}
buffer-indexof-polyfill@1.0.2: {}
buffer@5.7.1:
dependencies:
base64-js: 1.5.1
@@ -18587,8 +18572,6 @@ snapshots:
base64-js: 1.5.1
ieee754: 1.2.1
buffers@0.1.1: {}
bufferutil@4.0.9:
dependencies:
node-gyp-build: 4.8.4
@@ -18704,10 +18687,6 @@ snapshots:
dependencies:
traverse: 0.3.9
chainsaw@0.1.0:
dependencies:
traverse: 0.3.9
chalk@1.1.3:
dependencies:
ansi-styles: 2.2.1
@@ -19874,10 +19853,6 @@ snapshots:
es-errors: 1.3.0
gopd: 1.2.0
duplexer2@0.1.4:
dependencies:
readable-stream: 2.3.8
duplexify@3.7.1:
dependencies:
end-of-stream: 1.4.5
@@ -20771,13 +20746,6 @@ snapshots:
fsevents@2.3.3:
optional: true
fstream@1.0.12:
dependencies:
graceful-fs: 4.2.11
inherits: 2.0.4
mkdirp: 0.5.6
rimraf: 2.7.1
function-bind@1.1.2: {}
function.prototype.name@1.1.8:
@@ -21355,14 +21323,6 @@ snapshots:
http-parser-js@0.5.10: {}
http-proxy-agent@4.0.1:
dependencies:
'@tootallnate/once': 1.1.2
agent-base: 6.0.2(supports-color@10.2.2)
debug: 4.4.3(supports-color@10.2.2)
transitivePeerDependencies:
- supports-color
http-proxy-agent@5.0.0(supports-color@10.2.2):
dependencies:
'@tootallnate/once': 2.0.0
@@ -21761,6 +21721,8 @@ snapshots:
is-unicode-supported@0.1.0: {}
is-unicode-supported@1.3.0: {}
is-unicode-supported@2.1.0: {}
is-url@1.2.4: {}
@@ -22676,8 +22638,6 @@ snapshots:
dependencies:
uc.micro: 2.1.0
listenercount@1.0.1: {}
listr2@3.14.0(enquirer@2.4.1):
dependencies:
cli-truncate: 2.1.0
@@ -22802,6 +22762,11 @@ snapshots:
chalk: 4.1.2
is-unicode-supported: 0.1.0
log-symbols@6.0.0:
dependencies:
chalk: 5.6.2
is-unicode-supported: 1.3.0
log-symbols@7.0.1:
dependencies:
is-unicode-supported: 2.1.0
@@ -23301,7 +23266,7 @@ snapshots:
netmask@2.0.2: {}
ng-packagr@21.0.0-next.4(@angular/compiler-cli@21.0.0-next.5(@angular/compiler@21.0.0-next.5)(typescript@5.9.2))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2)))(tslib@2.8.1)(typescript@5.9.2):
ng-packagr@21.0.0-next.4(@angular/compiler-cli@21.0.0-next.5(@angular/compiler@21.0.0-next.5)(typescript@5.9.2))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@24.6.1)(typescript@5.9.2)))(tslib@2.8.1)(typescript@5.9.2):
dependencies:
'@ampproject/remapping': 2.3.0
'@angular/compiler-cli': 21.0.0-next.5(@angular/compiler@21.0.0-next.5)(typescript@5.9.2)
@@ -23329,7 +23294,7 @@ snapshots:
typescript: 5.9.2
optionalDependencies:
rollup: 4.52.3
tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2))
tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@24.6.1)(typescript@5.9.2))
ng-packagr@21.0.0-next.4(@angular/compiler-cli@packages+compiler-cli)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.19.17)(typescript@5.9.2)))(tslib@2.8.1)(typescript@5.9.2):
dependencies:
@@ -23665,6 +23630,18 @@ snapshots:
strip-ansi: 6.0.1
wcwidth: 1.0.1
ora@8.2.0:
dependencies:
chalk: 5.6.2
cli-cursor: 5.0.0
cli-spinners: 2.9.2
is-interactive: 2.0.0
is-unicode-supported: 2.1.0
log-symbols: 6.0.0
stdin-discarder: 0.2.2
string-width: 7.2.0
strip-ansi: 7.1.2
ora@9.0.0:
dependencies:
chalk: 5.6.2
@@ -25155,6 +25132,11 @@ snapshots:
slash@5.1.0: {}
sleep@6.1.0:
dependencies:
nan: 2.23.0
optional: true
slice-ansi@3.0.0:
dependencies:
ansi-styles: 4.3.0
@@ -26314,19 +26296,6 @@ snapshots:
untildify@4.0.0: {}
unzipper@0.10.14:
dependencies:
big-integer: 1.6.52
binary: 0.3.0
bluebird: 3.4.7
buffer-indexof-polyfill: 1.0.2
duplexer2: 0.1.4
fstream: 1.0.12
graceful-fs: 4.2.11
listenercount: 1.0.1
readable-stream: 2.3.8
setimmediate: 1.0.5
update-browserslist-db@1.1.3(browserslist@4.26.2):
dependencies:
browserslist: 4.26.2
@@ -26810,15 +26779,6 @@ snapshots:
vscode-oniguruma@1.7.0: {}
vscode-test@1.6.1:
dependencies:
http-proxy-agent: 4.0.1
https-proxy-agent: 7.0.6(supports-color@10.2.2)
rimraf: 3.0.2
unzipper: 0.10.14
transitivePeerDependencies:
- supports-color
vscode-textmate@7.0.4: {}
vscode-tmgrammar-test@0.1.3:
@@ -27251,6 +27211,10 @@ snapshots:
xtend@4.0.2: {}
xvfb@0.4.0:
optionalDependencies:
sleep: 6.1.0
y18n@4.0.3: {}
y18n@5.0.8: {}
@@ -1,34 +1,22 @@
load("@aspect_rules_ts//ts:defs.bzl", "ts_config", "ts_project")
ts_config(
name = "tsconfig",
src = "tsconfig.json",
visibility = ["//vscode-ng-language-service/integration:__subpackages__"],
deps = [
"//vscode-ng-language-service:tsconfig",
"//vscode-ng-language-service/server:tsconfig",
],
)
ts_config(
name = "tsconfig-test",
src = "tsconfig-test.json",
visibility = ["//vscode-ng-language-service/integration:__subpackages__"],
deps = [
":tsconfig",
"//vscode-ng-language-service:tsconfig",
"//vscode-ng-language-service/server:tsconfig",
],
)
ts_project(
name = "integration",
srcs = glob([
"*.ts",
]),
srcs = [
"test_constants.ts",
],
declaration = True,
source_map = True,
tsconfig = ":tsconfig",
tsconfig = "//vscode-ng-language-service:tsconfig",
visibility = ["//vscode-ng-language-service/integration:__subpackages__"],
deps = [
"//vscode-ng-language-service:node_modules/@types/node",
@@ -3,18 +3,20 @@ load("@aspect_rules_ts//ts:defs.bzl", "ts_project")
ts_project(
name = "e2e",
testonly = True,
srcs = glob(["*.ts"]),
declaration = True,
source_map = True,
tsconfig = "//vscode-ng-language-service/integration:tsconfig",
tsconfig = "//vscode-ng-language-service:tsconfig",
visibility = [
"//vscode-ng-language-service/integration:__subpackages__",
],
deps = [
"//vscode-ng-language-service:node_modules/@types/jasmine",
"//vscode-ng-language-service:node_modules/@types/jasmine-reporters",
"//vscode-ng-language-service:node_modules/@types/node",
"//vscode-ng-language-service:node_modules/@types/vscode",
"//vscode-ng-language-service:node_modules/vscode-test",
"//vscode-ng-language-service:node_modules/@vscode/test-electron",
"//vscode-ng-language-service/integration",
],
)
@@ -23,21 +25,26 @@ js_test(
name = "test",
data = [
":e2e",
"//vscode-ng-language-service:npm",
"//vscode-ng-language-service/integration",
"//vscode-ng-language-service/integration/project",
# Depend on //:node_modules/jasmine as a temporary work-around for jasmine escaping its
# runfiles likely due to esm import issue in rules_js https://github.com/aspect-build/rules_js/issues/362
"//vscode-ng-language-service:node_modules/jasmine",
"//vscode-ng-language-service:node_modules/jasmine-reporters",
"//vscode-ng-language-service:node_modules/typescript",
"//vscode-ng-language-service:node_modules/xvfb",
"//vscode-ng-language-service:npm",
"//vscode-ng-language-service/integration/project",
"//vscode-ng-language-service/integration/project:node_modules/@angular/common",
"//vscode-ng-language-service/integration/project:node_modules/@angular/core",
],
entry_point = ":index.js",
env = {
"DBUS_SESSION_BUS_ADDRESS": "",
},
# This test downloads vscode & installs it which is not allowed in the sandbox
# due to file system protection. It is tagged local so it runs outside of
# the sandbox. It would need some redesign to allow for sandbox execution.
# Tagged manual so that `bazel test //...` doesn't run it automatically.
tags = [
"e2e",
"local",
"manual",
"no-remote-exec",
"no-sandbox",
"requires-network",
],
)
@@ -5,7 +5,7 @@ import {activate, COMPLETION_COMMAND, FOO_TEMPLATE_URI} from './helper';
describe('Angular LS completions', () => {
beforeAll(async () => {
await activate(FOO_TEMPLATE_URI);
});
}, 20_000);
it(`does not duplicate HTML completions in external templates`, async () => {
const position = new vscode.Position(0, 0);
@@ -10,7 +10,7 @@ const APP_COMPONENT_URI = vscode.Uri.file(APP_COMPONENT);
describe('Angular LS', () => {
beforeAll(async () => {
await activate(APP_COMPONENT_URI);
}, 25000 /* 25 seconds */);
}, 20_000);
it(`returns definition for variable in template`, async () => {
// vscode Position is zero-based
@@ -29,8 +29,8 @@ describe('Angular LS', () => {
expect(def.targetUri.fsPath).toBe(APP_COMPONENT); // in the same document
const {start, end} = def.targetRange;
// Should start and end on line 6
expect(start.line).toBe(7);
expect(end.line).toBe(7);
expect(start.line).toBe(8);
expect(end.line).toBe(8);
expect(start.character).toBe(2);
expect(end.character).toBe(start.character + `name`.length);
});
@@ -1,3 +1,4 @@
import {setTimeout} from 'node:timers/promises';
import * as vscode from 'vscode';
import {APP_COMPONENT, FOO_TEMPLATE} from '../test_constants';
@@ -8,20 +9,16 @@ export const DEFINITION_COMMAND = 'vscode.executeDefinitionProvider';
export const APP_COMPONENT_URI = vscode.Uri.file(APP_COMPONENT);
export const FOO_TEMPLATE_URI = vscode.Uri.file(FOO_TEMPLATE);
function sleep(ms: number) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
export async function activate(uri: vscode.Uri) {
// set default timeout to 30 seconds
jasmine.DEFAULT_TIMEOUT_INTERVAL = 30_000;
export async function activate(uri: vscode.Uri): Promise<void> {
await vscode.window.showTextDocument(uri);
await waitForDefinitionsToBeAvailable(20);
}
async function waitForDefinitionsToBeAvailable(maxSeconds: number) {
async function waitForDefinitionsToBeAvailable(maxTries: number) {
await vscode.workspace.openTextDocument(APP_COMPONENT_URI);
let tries = 0;
while (tries < maxSeconds) {
while (tries < maxTries) {
const position = new vscode.Position(4, 25);
// For a complete list of standard commands, see
// https://code.visualstudio.com/api/references/commands
@@ -30,10 +27,12 @@ async function waitForDefinitionsToBeAvailable(maxSeconds: number) {
APP_COMPONENT_URI,
position,
);
if (definitions && definitions.length > 0) {
if (definitions?.length > 0) {
return;
}
tries++;
await sleep(1000);
await setTimeout(500);
}
}
@@ -2,12 +2,10 @@ import * as vscode from 'vscode';
import {activate, FOO_TEMPLATE_URI, HOVER_COMMAND} from './helper';
// This hover tests appear to be the only flaky ones in the suite. Disable until they can
// consistently pass.
xdescribe('Angular LS quick info', () => {
describe('Angular LS quick info', () => {
beforeAll(async () => {
await activate(FOO_TEMPLATE_URI);
});
}, 20_000);
it(`returns quick info from built in extension for class in template`, async () => {
const position = new vscode.Position(1, 8);
@@ -1,27 +1,51 @@
import {join} from 'path';
import {runTests} from 'vscode-test';
import {join} from 'node:path';
import {tmpdir} from 'node:os';
import {runTests} from '@vscode/test-electron';
import {PACKAGE_ROOT, PROJECT_PATH} from '../test_constants';
import {mkdtemp} from 'node:fs/promises';
// @ts-expect-error no types.
import Xvfb from 'xvfb';
async function main() {
const EXT_DEVELOPMENT_PATH = join(PACKAGE_ROOT, 'npm');
const EXT_DEVELOPMENT_PATH = join(PACKAGE_ROOT, 'npm/vscode-ng-language-service/vsix_sandbox');
const EXT_TESTS_PATH = join(PACKAGE_ROOT, 'integration', 'e2e', 'jasmine');
const xvfb = new Xvfb();
// We cannot use `TEST_TMPDIR` as it's longer than 170 characters
const vsCodeDataDir = await mkdtemp(join(tmpdir(), 'vscode-e2e-'));
try {
await runTests({
xvfb.start();
const exitCode = await runTests({
// Keep version in sync with vscode engine version in package.json
version: '1.74.3',
extensionDevelopmentPath: EXT_DEVELOPMENT_PATH,
extensionTestsPath: EXT_TESTS_PATH,
// Avoid redownloading vscode if the test if flaky.
cachePath: join(tmpdir(), 'vscode-cache'),
launchArgs: [
PROJECT_PATH,
// This disables all extensions except the one being tested
'--disable-extensions',
'--disable-gpu',
'--no-sandbox',
'--disable-dev-shm-usage',
'--disable-software-rasterizer',
`--extensions-dir=${vsCodeDataDir}/extensions`,
`--user-data-dir=${vsCodeDataDir}/user-data`,
],
});
if (exitCode !== 0) {
process.exitCode = exitCode;
}
} catch (err) {
console.error('Failed to run tests', err);
process.exit(1);
process.exitCode = 1;
} finally {
xvfb.stop();
}
}
@@ -0,0 +1,24 @@
import Jasmine from 'jasmine';
import {TerminalReporter} from 'jasmine-reporters';
export async function run(
_testsRoot: string,
cb: (error: any, exitCode?: number) => void,
): Promise<void> {
const jasmine = new Jasmine({projectBaseDir: __dirname});
jasmine.loadConfig({
spec_files: ['*_spec.js'],
});
jasmine.addReporter(new TerminalReporter());
jasmine.exitOnCompletion = false;
const result = await jasmine.execute();
if (result.overallStatus === 'passed') {
console.log('All specs have passed');
cb(null, 0);
} else {
console.log('At least one spec has failed');
cb(result.incompleteReason, 1);
}
}
@@ -12,13 +12,11 @@ jasmine_test(
"//vscode-ng-language-service/integration/project:node_modules/@angular/common",
"//vscode-ng-language-service/integration/project:node_modules/@angular/core",
"//vscode-ng-language-service/server:index",
"//vscode-ng-language-service/server:node_modules",
"//vscode-ng-language-service/server:node_modules/@angular/language-service",
"//vscode-ng-language-service/server:node_modules/typescript",
],
flaky = True,
shard_count = 2,
tags = [
"e2e",
],
)
ts_project(
@@ -1,5 +1,5 @@
{
"extends": "./tsconfig.json",
"extends": "../tsconfig.json",
"compilerOptions": {
"types": ["node", "jasmine"]
}
@@ -1,9 +0,0 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"rootDirs": [
"..",
"dist"
]
},
}
+4 -2
View File
@@ -262,8 +262,10 @@
"devDependencies": {
"@angular/core": "21.0.0-next.5",
"@types/jasmine": "~5.1.9",
"@types/jasmine-reporters": "~2.5.3",
"@types/node": "^24.5.2",
"@types/vscode": "^1.74.3",
"@vscode/test-electron": "~2.5.2",
"@vscode/vsce": "~3.6.1",
"jasmine": "~5.11.0",
"jasmine-core": "~5.11.0",
@@ -275,9 +277,9 @@
"vscode-languageserver": "7.0.0",
"vscode-languageserver-protocol": "3.16.0",
"vscode-languageserver-textdocument": "1.0.12",
"vscode-test": "1.6.1",
"vscode-tmgrammar-test": "0.1.3",
"vscode-uri": "3.1.0"
"vscode-uri": "3.1.0",
"xvfb": "^0.4.0"
},
"repository": {
"type": "git",
@@ -9,7 +9,6 @@ ts_config(
name = "tsconfig",
src = "tsconfig.json",
visibility = [
"//vscode-ng-language-service/integration:__subpackages__",
"//vscode-ng-language-service/server:__subpackages__",
],
deps = [
@@ -3,4 +3,4 @@
"compilerOptions": {
"useUnknownInCatchVariables": false
}
}
}