コード例 #1
0
 it("should warn when properties overlap", () => {
   ASRouterTargeting.combineContexts({
     get foo() { return "foo"; },
   }, {
     get foo() { return "bar"; },
   });
   assert.calledOnce(global.Cu.reportError);
 });
コード例 #2
0
  it("should return FxA message (is fallback)", async () => {
    const messages = (await OnboardingMessageProvider.getUntranslatedMessages())
      .filter(m => m.id !== "RETURN_TO_AMO_1");
    const context = {attributionData: {campaign: "non-fx-button", source: "addons.mozilla.org"}};
    const result = await ASRouterTargeting.findMatchingMessage({messages, trigger: {id: "firstRun"}, context});

    assert.isDefined(result);
    assert.equal(result.id, "FXA_1");
  });
コード例 #3
0
 it("should combine the properties of the two objects", () => {
   const joined = ASRouterTargeting.combineContexts({
     get foo() { return "foo"; },
   }, {
     get bar() { return "bar"; },
   });
   assert.propertyVal(joined, "foo", "foo");
   assert.propertyVal(joined, "bar", "bar");
 });
コード例 #4
0
  it("should check targeted message before message without targeting", async () => {
    const messages = (await OnboardingMessageProvider.getUntranslatedMessages());
    const stub = sandbox.stub(ASRouterTargeting, "checkMessageTargeting").resolves();
    const context = {attributionData: {campaign: "non-fx-button", source: "addons.mozilla.org"}};
    await ASRouterTargeting.findMatchingMessage({messages, trigger: {id: "firstRun"}, context});

    assert.equal(stub.callCount, 6);
    const calls = stub.getCalls().map(call => call.args[0]);
    const lastCall = calls[calls.length - 1];
    assert.equal(lastCall.id, "FXA_1");
  });