Skip to content

[PER-10762] Give each inline value editor its own field id and turn off autofill - #1180

Open
aasandei-vsp wants to merge 1 commit into
mainfrom
PER-10762-no-id-no-autocomplete
Open

aasandei-vsp wants to merge 1 commit into
mainfrom
PER-10762-no-id-no-autocomplete

Conversation

@aasandei-vsp

Copy link
Copy Markdown
Contributor

Manual test cases — no browser autofill on inline metadata fields

The saved-value dropdown is gone ⭐

(run this whole area in Chrome, Firefox and Safari — this is browser
behaviour, not app behaviour, and the three do not have to agree)

Scenario — establish the bug on production first

  1. On the current production build, open a record, click its Name field, select
    all, and type zzz-history-probe. Press Enter.
    • EXPECTED: The name saves as zzz-history-probe.
  2. Open a different record, click its Name field, and clear it.
  3. Type the single letter z.
    • EXPECTED: A browser dropdown appears below the field offering
      zzz-history-probe — a value that was never typed into this field. This is the
      bug.
  4. Press the down arrow once to highlight it, then press Enter.
    • EXPECTED: The field now reads zzz-history-probe, and clicking away saves it.
      This is the reported symptom reproduced.
  5. Rename both records back to something sensible.

Scenario — the same sequence on this branch

  1. On this branch, open a record, click Name, and type the single letter z.
    • EXPECTED: No dropdown. Nothing is offered, including the
      zzz-history-probe still sitting in the browser's history from the steps above.
  2. Press the down arrow.
    • EXPECTED: Nothing happens — no list, no highlight. The caret stays put.
  3. Type A new name and press Enter.
    • EXPECTED: The name saves as A new name exactly as typed.
  4. Open a second record, click Name, and type z again.
    • EXPECTED: Still no dropdown.

Scenario — nothing new accumulates either

  1. Still on this branch, rename three different records to probe-one, probe-two
    and probe-three, pressing Enter each time.
  2. Open a fourth record, click Name, and type probe.
    • EXPECTED: No dropdown. The three values just typed were not stored.

The settings pages ⭐

Scenario — Profile

  1. Open the Profile page and edit a text field, a description field and a date.
    • EXPECTED: All three save normally. The date picker behaves exactly as before —
      it was never part of this change.
  2. Click one of the external fields (the ones that open something else rather than
    editing inline).
    • EXPECTED: It opens whatever it opened before.

Scenario — Account Settings

  1. Open Account Settings and edit both inline fields.
    • EXPECTED: Both save normally, no dropdown on either.

Regression — the shared editor still behaves

Cheap sanity checks on the component that changed; these were traced as behaviourally
unchanged, so they are here to confirm rather than to discover.

  1. Start editing a Name, then press Escape or click Cancel.
    • EXPECTED: The original name comes back and nothing was saved.
  2. Clear a Name completely and click away.
    • EXPECTED: It refuses to save an empty name — the field is required.
  3. Edit a Name and click Save rather than pressing Enter.
    • EXPECTED: Saves.
  4. Edit a Name, then click straight onto a different record without saving.
    • EXPECTED: The edit is saved on blur, as it always was, and the newly clicked
      record's details load.
  5. Open a record whose date you can edit, change the date, and save.
    • EXPECTED: Unchanged behaviour.
  6. On a record you have read-only access to, click the Name.
    • EXPECTED: It does not become editable.

The Name field in the info panel and the record view rendered as a bare
<input name="text"> with no id and no autocomplete attribute, and every
other editable metadata field rendered with that same generic name.
Because of that, the browser could not differentiate between text
inputs, so it would give the same suggestions to all of them.

Now each instance of the inline value edit is uniquely identified,
so there won't be any more suggestions appearing.

Issue: PER-10762
@codecov

codecov Bot commented Sep 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 53.13%. Comparing base (217c054) to head (d46a60c).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1180   +/-   ##
=======================================
  Coverage   53.12%   53.13%           
=======================================
  Files         364      364           
  Lines       12776    12778    +2     
  Branches     2323     2323           
=======================================
+ Hits         6787     6789    +2     
+ Misses       5754     5751    -3     
- Partials      235      238    +3     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The only remaining finding is a non-blocking test-coverage nit.

Review effort: Lite
Findings: None

What changed in this PR

Updates inline value editors to prevent browser autofill/history suggestions from carrying values between fields.

Changes:

  • Generates unique control IDs and names per editor.
  • Disables autocomplete for text, textarea, and select controls.
  • Adds tests for the new attributes and behavior.
File Summary
src/​app/​shared/​components/​inline-value-edit/​inline-value-edit.component.ts Generates unique control identifiers.
src/​app/​shared/​components/​inline-value-edit/​inline-value-edit.component.spec.ts Tests autocomplete and identifier behavior. Nit: extend assertions to all control branches, including description-textarea.
src/​app/​shared/​components/​inline-value-edit/​inline-value-edit.component.html Applies unique IDs/names and disables autocomplete.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@aasandei-vsp aasandei-vsp added the QA This issue is ready for QA / user acceptance testing label Sep 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

QA This issue is ready for QA / user acceptance testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants