import Search from "../../../src/shared/settings/Search"; import { expect } from "chai"; describe("Search", () => { it("returns search settings by valid settings", () => { const search = Search.fromJSON({ default: "google", engines: { google: "https://google.com/search?q={}", yahoo: "https://search.yahoo.com/search?p={}", }, }); expect(search.defaultEngine).to.equal("google"); expect(search.engines).to.deep.equals({ google: "https://google.com/search?q={}", yahoo: "https://search.yahoo.com/search?p={}", }); expect(search.toJSON()).to.deep.equal({ default: "google", engines: { google: "https://google.com/search?q={}", yahoo: "https://search.yahoo.com/search?p={}", }, }); }); it("throws a TypeError by invalid settings", () => { expect(() => Search.fromJSON({ default: "wikipedia", engines: { google: "https://google.com/search?q={}", yahoo: "https://search.yahoo.com/search?p={}", }, }) ).to.throw(TypeError); expect(() => Search.fromJSON({ default: "g o o g l e", engines: { "g o o g l e": "https://google.com/search?q={}", }, }) ).to.throw(TypeError); expect(() => Search.fromJSON({ default: "google", engines: { google: "https://google.com/search", }, }) ).to.throw(TypeError); expect(() => Search.fromJSON({ default: "google", engines: { google: "https://google.com/search?q={}&r={}", }, }) ).to.throw(TypeError); }); });