"use strict"; const expect = require("chai").expect; const Client = require("../../src/client"); const client = new Client({}, "test", {clientSettings: {highlights: "foo, @all, sp ace , 고"}}); describe("Custom highlights", function() { it("should NOT highlight", function() { const teststrings = [ "and foos stuff", "test foobar", "testfoo bar", "fooö", "wtf@all", "foo고", "test고", "space", "sp:ace", ]; for (const teststring of teststrings) { expect(teststring).to.not.match(client.highlightRegex); } }); it("should highlight", function() { const teststrings = [ "Hey foo hello", "hey Foo: hi", "hey Foo, hi", " testing", "foo", "hey @all test", "testing foo's stuff", "\"foo\"", "\"@all\"", "foo!", "www.foo.bar", "www.bar.foo/page", "고", "test 고", "고!", "www.고.com", "hey @Foo", "hey ~Foo", "hey +Foo", "hello &foo", "@all", "@all wtf", "wtf @all", "@@all", "@고", "f00 sp ace: bar", ]; for (const teststring of teststrings) { expect(teststring).to.match(client.highlightRegex); } }); it("should trim custom highlights in the compiled regex", function() { expect(client.highlightRegex).to.match(/\(\?:foo\|@all\|sp ace\|고\)/); }); it("should NOT compile a regex", function() { // test updating the regex and invalid custom hl inputs client.config.clientSettings.highlights = ",,"; client.compileCustomHighlights(); expect(client.highlightRegex).to.be.null; client.config.clientSettings.highlights = " "; client.compileCustomHighlights(); expect(client.highlightRegex).to.be.null; }); });