fix(dashboard): restore shift-click suggestion submit
Default domain was retired slug "custodian", so POST /technical-debt/ returned 422 and the modal failed after open. Use infotech, resolve apiBase like config.js, and surface API error detail in the toast.
This commit is contained in:
parent
224584d379
commit
c363549388
3 changed files with 116 additions and 7 deletions
46
dashboard/test/improvement-modal.test.mjs
Normal file
46
dashboard/test/improvement-modal.test.mjs
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
import {readFileSync} from "node:fs";
|
||||
import {dirname, join} from "node:path";
|
||||
import {fileURLToPath} from "node:url";
|
||||
|
||||
import {
|
||||
DEFAULT_IMPROVEMENT_DOMAIN,
|
||||
resolveImprovementApiBase,
|
||||
} from "../src/components/improvement-modal.js";
|
||||
|
||||
const root = dirname(fileURLToPath(import.meta.url));
|
||||
const modalSource = readFileSync(
|
||||
join(root, "../src/components/improvement-modal.js"),
|
||||
"utf-8",
|
||||
);
|
||||
|
||||
test("dashboard-improvement default domain is the live infotech slug", () => {
|
||||
assert.equal(DEFAULT_IMPROVEMENT_DOMAIN, "infotech");
|
||||
// Regression: custodian was retired from the domain registry; POST /technical-debt/
|
||||
// returns 422 for unknown domain, so the shift-wait-click modal must not use it.
|
||||
assert.doesNotMatch(modalSource, /domain\s*=\s*["']custodian["']/);
|
||||
assert.match(modalSource, /domain\s*=\s*DEFAULT_IMPROVEMENT_DOMAIN/);
|
||||
assert.match(modalSource, /debt_type:\s*["']dashboard-improvement["']/);
|
||||
});
|
||||
|
||||
test("improvement modal api base mirrors dashboard config resolution", () => {
|
||||
assert.equal(
|
||||
resolveImprovementApiBase({location: null, storage: null}),
|
||||
"http://127.0.0.1:8000",
|
||||
);
|
||||
assert.equal(
|
||||
resolveImprovementApiBase({
|
||||
location: new URL("http://localhost:3000/workstreams"),
|
||||
storage: null,
|
||||
}),
|
||||
"http://localhost:8000",
|
||||
);
|
||||
assert.equal(
|
||||
resolveImprovementApiBase({
|
||||
location: new URL("http://localhost:3000/?api_base=http%3A%2F%2F127.0.0.1%3A18000%2F"),
|
||||
storage: {getItem: () => "http://ignored.example:8000"},
|
||||
}),
|
||||
"http://127.0.0.1:18000",
|
||||
);
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue