summaryrefslogtreecommitdiffstats
path: root/browser/components/newtab/test/unit/asrouter/PanelTestProvider.test.js
blob: 1a15f705eed7c723427bd1c5da6e58a2ec3d1551 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { PanelTestProvider } from "lib/PanelTestProvider.jsm";
import schema from "content-src/asrouter/schemas/panel/cfr-fxa-bookmark.schema.json";
import update_schema from "content-src/asrouter/templates/OnboardingMessage/UpdateAction.schema.json";
import whats_new_schema from "content-src/asrouter/templates/OnboardingMessage/WhatsNewMessage.schema.json";

describe("PanelTestProvider", () => {
  let messages;
  beforeEach(async () => {
    messages = await PanelTestProvider.getMessages();
  });
  it("should have a message", () => {
    // Careful: when changing this number make sure that new messages also go
    // through schema verifications.
    assert.lengthOf(messages, 13);
  });
  it("should be a valid message", () => {
    const fxaMessages = messages.filter(
      ({ template }) => template === "fxa_bookmark_panel"
    );
    for (let message of fxaMessages) {
      assert.jsonSchema(message.content, schema);
    }
  });
  it("should be a valid message", () => {
    const updateMessages = messages.filter(
      ({ template }) => template === "update_action"
    );
    for (let message of updateMessages) {
      assert.jsonSchema(message.content, update_schema);
    }
  });
  it("should be a valid message", () => {
    const whatsNewMessages = messages.filter(
      ({ template }) => template === "whatsnew_panel_message"
    );
    for (let message of whatsNewMessages) {
      assert.jsonSchema(message.content, whats_new_schema);
      // Not part of `message.content` so it can't be enforced through schema
      assert.property(message, "order");
    }
  });
});