Replaced labels with icons in the SR and Action badges
This commit is contained in:
@@ -52,7 +52,9 @@ test("workload actions reject missing credentials, invalid ids, HTTP/network/JSO
|
||||
});
|
||||
|
||||
function contentFixture(send) {
|
||||
const app = loadApplication("content", { document: { createElement: () => ({ attributes: {}, setAttribute(k, v) { this.attributes[k] = v; } }) } });
|
||||
const document = { createElement: () => ({ attributes: {}, append() {}, addEventListener() {}, setAttribute(k, v) { this.attributes[k] = v; } }) };
|
||||
document.createElementNS = (_, tag) => document.createElement(tag);
|
||||
const app = loadApplication("content", { document });
|
||||
app.currentUser.allowsCrmActivities = () => true;
|
||||
app.authContentSession.requestConsumerTokenServiceOnce = async () => ({ workloadActions: { value: "synthetic-wwb" } });
|
||||
app.authSessionState.principal = "test@example.invalid";
|
||||
@@ -74,12 +76,14 @@ test("Actions completion includes queued calls, shared pending records, failures
|
||||
const shared = app.opportunityWorkloadActions.loadProducts(products).then(() => { sharedComplete = true; });
|
||||
await flush();
|
||||
assert.equal(pending.length, 4);
|
||||
pending.slice(0, 4).forEach(resolve => resolve({ ok: false, error: "Synthetic" }));
|
||||
await flush();
|
||||
assert.equal(pending.length, 5);
|
||||
for (let attempt = 0; attempt < 5; attempt += 1) {
|
||||
pending.slice(attempt * 4, attempt * 4 + 4).forEach(resolve => resolve({ ok: false, error: "Synthetic" }));
|
||||
await flush();
|
||||
}
|
||||
assert.equal(pending.length, 21);
|
||||
assert.equal(complete, false);
|
||||
assert.equal(sharedComplete, false);
|
||||
pending[4]({ ok: true, actions: [], hasNext: false });
|
||||
pending[20]({ ok: true, actions: [], hasNext: false });
|
||||
await flush();
|
||||
assert.equal(complete, false, "cache write still pending");
|
||||
finishWrite();
|
||||
@@ -109,18 +113,18 @@ test("actions aggregate all products, share RevnId queries across Reference chan
|
||||
const products = { items: [{ RevnId: "1" }, { RevnId: 2 }, { RevnId: "1" }] };
|
||||
app.productsContentState.opptyProductsByNumber.set("A", products);
|
||||
app.opportunityWorkloadActions.loadProducts(products);
|
||||
assert.equal(app.opportunityWorkloadActions.createBadge("A").textContent, "Act ...");
|
||||
assert.equal(app.opportunityWorkloadActions.createBadge("A").textContent, "...");
|
||||
await flush();
|
||||
assert.equal(calls.length, 2);
|
||||
assert.equal(calls[0].authorization.value, "synthetic-wwb");
|
||||
const badge = app.opportunityWorkloadActions.createBadge("A");
|
||||
assert.equal(badge.textContent, "\u2705 Act");
|
||||
assert.equal(badge.textContent, "1");
|
||||
assert.match(badge.title, /<script>safe<\/script>/);
|
||||
app.opportunityWorkloadActions.loadProducts(products);
|
||||
await flush();
|
||||
assert.equal(calls.length, 2);
|
||||
app.productsContentState.opptyProductsByNumber.set("B", { items: [{ RevnId: 2 }] });
|
||||
assert.equal(app.opportunityWorkloadActions.createBadge("B").textContent, "\u26d4 Act");
|
||||
assert.equal(app.opportunityWorkloadActions.createBadge("B").textContent, "0");
|
||||
app.opportunityWorkloadActions.reset(false);
|
||||
app.opportunityWorkloadActions.loadProducts(products);
|
||||
await flush();
|
||||
@@ -138,9 +142,9 @@ test("errors, missing ids and partial empty pages never appear as confirmed abse
|
||||
app.productsContentState.opptyProductsByNumber.set("A", products);
|
||||
app.opportunityWorkloadActions.loadProducts(products);
|
||||
await flush();
|
||||
assert.equal(app.opportunityWorkloadActions.createBadge("A").textContent, "Act ?");
|
||||
assert.equal(app.opportunityWorkloadActions.createBadge("A").textContent, "?");
|
||||
app.productsContentState.opptyProductsByNumber.set("A", { items: [{}] });
|
||||
assert.equal(app.opportunityWorkloadActions.createBadge("A").textContent, "Act ?");
|
||||
assert.equal(app.opportunityWorkloadActions.createBadge("A").textContent, "?");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -155,15 +159,17 @@ test("Act requires an owner matching tokenrelay principal while tooltip retains
|
||||
app.opportunityWorkloadActions.loadProducts(products);
|
||||
await flush();
|
||||
const badge = () => app.opportunityWorkloadActions.createBadge("A");
|
||||
assert.equal(badge().textContent, "\u2705 Act");
|
||||
assert.equal(badge().textContent, "2");
|
||||
assert.equal(badge().attributes["data-state"], "matched");
|
||||
assert.match(badge().title, /Other action/);
|
||||
assert.match(badge().title, /My action/);
|
||||
app.authSessionState.principal = "different@example.invalid";
|
||||
assert.equal(badge().textContent, "\u26d4 Act", "ownerEmail must not determine ownership");
|
||||
assert.equal(badge().textContent, "2");
|
||||
assert.equal(badge().attributes["data-state"], "missing", "ownerEmail must not determine ownership");
|
||||
assert.match(badge().title, /Other action/);
|
||||
assert.match(badge().title, /My action/);
|
||||
app.authSessionState.principal = "";
|
||||
assert.equal(badge().textContent, "Act ?");
|
||||
assert.equal(badge().textContent, "?");
|
||||
});
|
||||
|
||||
test("general tokenrelay retains principal without changing access-token return or accepting sales-common identity", async () => {
|
||||
|
||||
Reference in New Issue
Block a user