'use strict'; const hljs = require('../../build'); let grammar = function() { return { contains: [ { beginKeywords: "class" } ] } } let grammarWithFollowupRule = function() { return { contains: [ { beginKeywords: "class" }, { begin: "class", className: "found" } ] } } describe('beginKeywords', () => { before( () => { hljs.registerLanguage("test", grammar); hljs.registerLanguage("has-followup", grammarWithFollowupRule); }); it("should allow subsequence matches to still succeed", () => { let content = "A.class = self"; let res = hljs.highlight(content, {language: "has-followup"}); res.value.should.equal('A.class = self'); }); it("should ignore a preceeding .", () => { let content = "A.class = self"; let res = hljs.highlight(content, { language: "test" }); res.value.should.equal('A.class = self'); }); it("should ignore a trailing .", () => { let content = "class.config = true"; let res = hljs.highlight(content, { language: "test" }); res.value.should.equal('class.config = true'); }); it('should detect keywords', () => { let content = "I have a class yes I do."; let res = hljs.highlight(content, { language: "test" }); res.value.should.equal('I have a class yes I do.'); }); });