Implemented the functionality to add a WL Action
This commit is contained in:
@@ -64,6 +64,45 @@ function contentFixture(send) {
|
||||
return app;
|
||||
}
|
||||
|
||||
test("saved response updates the workload badge, tooltip and matching cache without fetching", async () => {
|
||||
const app = contentFixture(() => assert.fail("Save response must not trigger a GET"));
|
||||
const writes = [];
|
||||
app.activityCache.write = async (...args) => writes.push(args);
|
||||
const products = { items: [{ RevnId: "123" }], cachedAt: 1000 };
|
||||
app.productsContentState.opptyProductsByNumber.set("A", products);
|
||||
app.productsContentState.opptyProductsByNumber.set("B", { items: [{ RevnId: "456" }] });
|
||||
const action = { id: 77, name: "REVIEW", ownerEmail: "test@example.invalid", revenueId: 123, status: "COMPLETE" };
|
||||
assert.equal(await app.opportunityWorkloadActions.applySavedAction("A", "123", action), true);
|
||||
assert.equal(app.opportunityWorkloadActions.getSummary("A").state, "matched");
|
||||
assert.equal(app.opportunityWorkloadActions.getSummary("A").actions.length, 1);
|
||||
assert.equal(app.opportunityWorkloadActions.getSummary("B").actions.length, 0);
|
||||
assert.ok(app.opportunityWorkloadActions.createBadge("A").title.includes("ID: 77"));
|
||||
assert.deepEqual(writes[0].slice(0, 3), ["actions", "123", 1000]);
|
||||
assert.equal(writes[0][3][0].id, 77);
|
||||
await app.opportunityWorkloadActions.applySavedAction("A", "123", { action: { ...action, status: "OPEN" } });
|
||||
assert.equal(app.opportunityWorkloadActions.getSummary("A").actions.length, 1);
|
||||
assert.equal(app.opportunityWorkloadActions.getSummary("A").actions[0].status, "OPEN");
|
||||
await app.opportunityWorkloadActions.applySavedAction("A", "123", { actions: [{ ...action, id: 78, ownerEmail: "other@example.invalid" }] });
|
||||
assert.equal(app.opportunityWorkloadActions.getSummary("A").actions.length, 2);
|
||||
assert.equal(await app.opportunityWorkloadActions.applySavedAction("B", "123", action), false);
|
||||
assert.equal(await app.opportunityWorkloadActions.applySavedAction("A", "123", null), false);
|
||||
});
|
||||
|
||||
test("saved Action uses its email rather than display name for green badge and removes plus", async () => {
|
||||
const app = contentFixture(() => assert.fail("No follow-up GET"));
|
||||
app.activityCache.write = async () => {};
|
||||
app.productsContentState.opptyProductsByNumber.set("A", { items: [{ RevnId: "123" }] });
|
||||
const saved = { id: 90, owner: "Test User", ownerEmail: " TEST@example.invalid ", name: "REVIEW" };
|
||||
await app.opportunityWorkloadActions.applySavedAction("A", "123", saved);
|
||||
const badge = app.opportunityWorkloadActions.createBadge("A");
|
||||
assert.equal(badge.attributes["data-state"], "matched");
|
||||
assert.equal(badge.textContent, "1");
|
||||
await app.opportunityWorkloadActions.applySavedAction("A", "123", { id: 90, owner: "Test User" }, { ownerEmail: "test@example.invalid" });
|
||||
assert.equal(app.opportunityWorkloadActions.getSummary("A").state, "matched");
|
||||
app.authSessionState.principal = "another@example.invalid";
|
||||
assert.equal(app.opportunityWorkloadActions.getSummary("A").state, "missing");
|
||||
});
|
||||
|
||||
test("Actions completion includes queued calls, shared pending records, failures and cache writes", async () => {
|
||||
const pending = [];
|
||||
let finishWrite;
|
||||
|
||||
Reference in New Issue
Block a user