mirror of
https://github.com/morluto/rea.git
synced 2026-11-03 05:16:16 +00:00
Save typed response fields and reuse generated IDs or authentication values across browser scenario requests, UI observations and navigation through the shared CLI/MCP workflow.
Preserve exact numbers, retained Evidence, explicit source/coverage limits and prospective page-value semantics. Bound response decoding, retained spellings and request serialization before allocation, and protect marked response values across source records, follow-up text and planned screenshots.
Integrates Edgar Arakelyan's #7162, including follow-ups through 9f5191ab0. Final local validation: 560 feature-branch tests and 561 current-main integration tests, static/build/docs checks and real PocketBase CLI/MCP privacy workflows. Whole-task comparison and verification limits are recorded in docs/verification/browser-saved-values-2026-10-26.md.
Co-authored-by: Edgar Arakelyan <edgar.arakelyan@scale.com>
40 lines
1.4 KiB
HTML
40 lines
1.4 KiB
HTML
<!doctype html><meta charset="utf-8" /><title>
|
|
PocketBase saved value verifier
|
|
</title>
|
|
<label>Email<input id="email" /></label
|
|
><label>Password<input type="password" id="password" /></label
|
|
><button id="login">Sign in</button><button id="create">Create record</button>
|
|
<pre id="result"></pre>
|
|
<script>
|
|
document.querySelector("#login").onclick = async () => {
|
|
const r = await fetch("/api/collections/_superusers/auth-with-password", {
|
|
method: "POST",
|
|
headers: { "Content-Type": "application/json" },
|
|
body: JSON.stringify({
|
|
identity: document.querySelector("#email").value,
|
|
password: document.querySelector("#password").value,
|
|
}),
|
|
});
|
|
const data = await r.json();
|
|
localStorage.setItem("rea_auth", JSON.stringify(data));
|
|
document.querySelector("#result").textContent = r.ok
|
|
? "Signed in"
|
|
: "Sign in failed";
|
|
if (r.ok) document.querySelector("#result").dataset.ready = "yes";
|
|
};
|
|
document.querySelector("#create").onclick = async () => {
|
|
const token = JSON.parse(localStorage.getItem("rea_auth") || "{}").token;
|
|
const r = await fetch("/api/collections/rea_items/records", {
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
...(token ? { Authorization: token } : {}),
|
|
},
|
|
body: JSON.stringify({ title: "rea-ui-record" }),
|
|
});
|
|
document.querySelector("#result").textContent = JSON.stringify(
|
|
await r.json(),
|
|
);
|
|
};
|
|
</script>
|