From 3d12b85877ed5387214ed986b3c29987a7c0325e Mon Sep 17 00:00:00 2001 From: steven nguyen Date: Tue, 14 Dec 2021 10:04:25 -0600 Subject: [PATCH] add tests for hbs assuming hbs template scope --- spec/javascript-spec.coffee | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/spec/javascript-spec.coffee b/spec/javascript-spec.coffee index 192850ec..6e003f70 100644 --- a/spec/javascript-spec.coffee +++ b/spec/javascript-spec.coffee @@ -968,6 +968,25 @@ describe "JavaScript grammar", -> expect(tokens[5]).toEqual value: '}', scopes: ['source.js', 'string.quoted.template.sql.js', 'source.js.embedded.source', 'punctuation.section.embedded.js'] expect(tokens[6]).toEqual value: '`', scopes: ['source.js', 'string.quoted.template.sql.js', 'punctuation.definition.string.end.js'] + describe "ES6 tagged HBS string templates", -> + it "tokenizes them as strings", -> + {tokens} = grammar.tokenizeLine('hbs`{{#if isAdmin`') + expect(tokens[0]).toEqual value: 'hbs', scopes: ['source.js', 'string.quoted.template.hbs.js', 'entity.name.function.js'] + expect(tokens[1]).toEqual value: '`', scopes: ['source.js', 'string.quoted.template.hbs.js', 'punctuation.definition.string.begin.js'] + expect(tokens[2]).toEqual value: '{{#if isAdmin', scopes: ['source.js', 'string.quoted.template.hbs.js'] + expect(tokens[3]).toEqual value: '`', scopes: ['source.js', 'string.quoted.template.hbs.js', 'punctuation.definition.string.end.js'] + + describe "ES6 tagged HBS string templates with interpolation", -> + it "tokenizes them as strings", -> + {tokens} = grammar.tokenizeLine('hbs`{{#if ${isAdmin}`') + expect(tokens[0]).toEqual value: 'hbs', scopes: ['source.js', 'string.quoted.template.hbs.js', 'entity.name.function.js'] + expect(tokens[1]).toEqual value: '`', scopes: ['source.js', 'string.quoted.template.hbs.js', 'punctuation.definition.string.begin.js'] + expect(tokens[2]).toEqual value: '{{#if ', scopes: ['source.js', 'string.quoted.template.hbs.js'] + expect(tokens[3]).toEqual value: '${', scopes: ['source.js', 'string.quoted.template.hbs.js', 'source.js.embedded.source', 'punctuation.section.embedded.js'] + expect(tokens[4]).toEqual value: 'isAdmin', scopes: ['source.js', 'string.quoted.template.hbs.js', 'source.js.embedded.source'] + expect(tokens[5]).toEqual value: '}', scopes: ['source.js', 'string.quoted.template.hbs.js', 'source.js.embedded.source', 'punctuation.section.embedded.js'] + expect(tokens[6]).toEqual value: '`', scopes: ['source.js', 'string.quoted.template.hbs.js', 'punctuation.definition.string.end.js'] + describe "ES6 class", -> it "tokenizes class", -> {tokens} = grammar.tokenizeLine('class MyClass')