Skip to content

Commit 4a1cbf7

Browse files
authored
test: add tests for inline template textmate grammar (#467)
* test: add tests for inline template textmate grammar Adds tests for the TypeScript inline Angular template grammar via the [vscode-tmgrammar-test](https://github.com/PanAeon/vscode-tmgrammar-test) framework, which [now supports loading multiple grammars](PanAeon/vscode-tmgrammar-test@e2c4e86) as needed by this project. A dummy HTML grammar is used for inline templates, as currently we are only concerned with recognization of the inline template. * fixup! test: add tests for inline template textmate grammar * fixup! test: add tests for inline template textmate grammar
1 parent 7a0e861 commit 4a1cbf7

File tree

6 files changed

+102
-2
lines changed

6 files changed

+102
-2
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ script:
1717
- ./scripts/build.sh
1818
- ./scripts/test.sh
1919
- ./scripts/format.sh
20+
- ./scripts/syntax.sh
2021

2122
after_script:
2223
- ./scripts/cleanup.sh

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@
7777
"package": "rm -rf dist && node scripts/package.js",
7878
"test": "yarn compile:test && jasmine server/out/tests/*_spec.js",
7979
"test:lsp": "yarn compile:integration && jasmine integration/out/lsp/*_spec.js",
80-
"test:e2e": "yarn compile:integration && ./scripts/e2e.sh"
80+
"test:e2e": "yarn compile:integration && ./scripts/e2e.sh",
81+
"test:syntax": "./scripts/syntax.sh"
8182
},
8283
"dependencies": {
8384
"typescript": "~3.6.4"
@@ -93,7 +94,8 @@
9394
"tslint-eslint-rules": "^5.4.0",
9495
"vsce": "^1.69.0",
9596
"vscode": "^1.1.36",
96-
"vscode-jsonrpc": "^4.0.0"
97+
"vscode-jsonrpc": "^4.0.0",
98+
"vscode-tmgrammar-test": "^0.0.8"
9799
},
98100
"repository": {
99101
"type": "git",

scripts/syntax.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env bash
2+
3+
set -ex -o pipefail
4+
5+
DUMMY_GRAMMARS=$(find syntaxes/test -name '*-dummy.json' -exec echo "-g {}" \; | tr '\n' ' ')
6+
7+
# Template syntax tests
8+
yarn vscode-tmgrammar-test \
9+
-s template.ng \
10+
-g syntaxes/template.ng.json $DUMMY_GRAMMARS \
11+
-t "syntaxes/test/**/*.ts"
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"comment": "Dummy HTML TextMate grammar for use in testing",
3+
"scopeName": "text.html.basic"
4+
}

syntaxes/test/inline_template.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// SYNTAX TEST "template.ng"
2+
/* clang-format off */
3+
4+
@Component({
5+
//// Property key/value test
6+
template: '<div></div>',
7+
//^^^^^^^^^ meta.object-literal.key.ts
8+
// ^^^^^^^^^^^ template.ng (fake grammar token)
9+
10+
//// String delimiter tests
11+
template: `<div></div>`,
12+
// ^ string
13+
// ^ string
14+
template: "<div></div>",
15+
// ^ string
16+
// ^ string
17+
template: '<div></div>',
18+
// ^ string
19+
// ^ string
20+
21+
//// Parenthesization tests
22+
template: ( (( '<div></div>' )) ),
23+
// ^ meta.brace.round.ts
24+
// ^^ meta.brace.round.ts
25+
// ^ string
26+
// ^ string
27+
// ^^ meta.brace.round.ts
28+
// ^ meta.brace.round.ts
29+
})
30+
export class TMComponent{}

yarn.lock

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,11 @@ commander@^2.12.1, commander@^2.8.1:
225225
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
226226
integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
227227

228+
commander@^2.20.0:
229+
version "2.20.3"
230+
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
231+
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
232+
228233
229234
version "0.0.1"
230235
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -291,6 +296,11 @@ [email protected], diff@^3.2.0:
291296
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
292297
integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
293298

299+
diff@^4.0.1:
300+
version "4.0.1"
301+
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff"
302+
integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==
303+
294304
295305
version "0.7.2"
296306
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523"
@@ -485,6 +495,18 @@ glob@^7.0.0, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
485495
once "^1.3.0"
486496
path-is-absolute "^1.0.0"
487497

498+
glob@^7.1.4:
499+
version "7.1.6"
500+
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
501+
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
502+
dependencies:
503+
fs.realpath "^1.0.0"
504+
inflight "^1.0.4"
505+
inherits "2"
506+
minimatch "^3.0.4"
507+
once "^1.3.0"
508+
path-is-absolute "^1.0.0"
509+
488510
489511
version "1.10.5"
490512
resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
@@ -744,6 +766,11 @@ mute-stream@~0.0.4:
744766
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
745767
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
746768

769+
nan@^2.14.0:
770+
version "2.14.0"
771+
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
772+
integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
773+
747774
nth-check@~1.0.1:
748775
version "1.0.2"
749776
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
@@ -763,6 +790,13 @@ once@^1.3.0:
763790
dependencies:
764791
wrappy "1"
765792

793+
oniguruma@^7.2.0:
794+
version "7.2.1"
795+
resolved "https://registry.yarnpkg.com/oniguruma/-/oniguruma-7.2.1.tgz#51775834f7819b6e31aa878706aa7f65ad16b07f"
796+
integrity sha512-WPS/e1uzhswPtJSe+Zls/kAj27+lEqZjCmRSjnYk/Z4L2Mu+lJC2JWtkZhPJe4kZeTQfz7ClcLyXlI4J68MG2w==
797+
dependencies:
798+
nan "^2.14.0"
799+
766800
os-homedir@^1.0.0:
767801
version "1.0.2"
768802
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
@@ -1185,6 +1219,24 @@ vscode-test@^0.4.1:
11851219
http-proxy-agent "^2.1.0"
11861220
https-proxy-agent "^2.2.1"
11871221

1222+
vscode-textmate@^4.1.1:
1223+
version "4.4.0"
1224+
resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-4.4.0.tgz#14032afeb50152e8f53258c95643e555f2948305"
1225+
integrity sha512-dFpm2eK0HwEjeFSD1DDh3j0q47bDSVuZt20RiJWxGqjtm73Wu2jip3C2KaZI3dQx/fSeeXCr/uEN4LNaNj7Ytw==
1226+
dependencies:
1227+
oniguruma "^7.2.0"
1228+
1229+
vscode-tmgrammar-test@^0.0.8:
1230+
version "0.0.8"
1231+
resolved "https://registry.yarnpkg.com/vscode-tmgrammar-test/-/vscode-tmgrammar-test-0.0.8.tgz#e21e3c6d5f98b25cef64d6b313350ae93617c6d6"
1232+
integrity sha512-Ipa76MQrvU6yz699LiueHa4uHkXu4nxI5yueo9cHc+kggZXsKsOmAyVc8m4V8lyIz9KesZ7Nq9NPgh78AYXPrw==
1233+
dependencies:
1234+
chalk "^2.4.2"
1235+
commander "^2.20.0"
1236+
diff "^4.0.1"
1237+
glob "^7.1.4"
1238+
vscode-textmate "^4.1.1"
1239+
11881240
vscode@^1.1.36:
11891241
version "1.1.36"
11901242
resolved "https://registry.yarnpkg.com/vscode/-/vscode-1.1.36.tgz#5e1a0d1bf4977d0c7bc5159a9a13d5b104d4b1b6"

0 commit comments

Comments
 (0)