Skip to content

feat(signup): Angular version of signup page using existing backend.#1849

Merged
castaway merged 27 commits into
runbox:masterfrom
gtandersen:geir/signup-screen-review-clean
Jun 18, 2026
Merged

feat(signup): Angular version of signup page using existing backend.#1849
castaway merged 27 commits into
runbox:masterfrom
gtandersen:geir/signup-screen-review-clean

Conversation

@gtandersen

Copy link
Copy Markdown
Contributor

Clean version of #1844 without unrelated support commits.

Comment thread src/app/signup/signup.component.ts Outdated
Comment thread src/app/signup/signup.component.ts Outdated
@castaway castaway requested review from castaway and piratefinn June 4, 2026 14:50
Original review (geir-signup-screen-review-clean):
- C1: Map getRunboxDomains objects to strings defensively; fix mock shapes
- I1: Clear interval on existing-script error listener
- I2: Add destroyed flag and timer cleanup in ngOnDestroy
- I3: Replace hardcoded hex literals with theme palette tokens
- S1: Remove dead SIGNUP_HCAPTCHA_SITE_KEY env var from gen-env.js
- S3: Clear hCaptchaSiteKey on script failure for accurate error message
- S4: Try/catch around formElement.submit() with state reset
- S5: Nullish-coalescing on getSignupHCaptchaSiteKey response
- S7: Remove dead hidden accountType form field
- S8: Unicode-aware password strength regex (\p{Ll}, \p{Lu})
- S9: Validate account_number query param before binding
- S11: Add afterEach fixture.destroy() and hcaptcha stub cleanup
- S12: Capture hCaptcha render params in Cypress stub
- S13: Two-pass focus selector (Angular-invalid first, native second)

Remediation pass (fix-signup-review-findings):
- N1: Gate submit guard on hCaptchaReady instead of hCaptchaSiteKey
- N2: Remove failed hCaptcha script element on error
- N3: Capture subscriptions and guard async chain on destroyed flag
- N4: Add 15s timeout on script-load polling for ad blocker/CSP scenarios
- N5: Wrap afterEach in try/finally for resilient test cleanup
- Guard destroyed-component state in hcaptcha catch handler (N6)
- Resolve paused promise in 'still loading' test to prevent GC leak (N9)
- Replace footer gradient hex literals with palette tokens
- Consolidate breakpoint padding/width/font-size overrides into clamp()
  expressions on base rules (35 lines net reduction, 883 -> 844 lines)
- Add consolidated review document covering all three review passes
@castaway

castaway commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

We should test:

  • non-ascii characters in at least the first+last names
  • on RMM signup vs Runbox7 signup, and check which fields get filled how

NB: I noticed that the RMM signup page figures out a timezone based on a country var in the page that the Template sets.. so we would need to replicate .. tho given the timezone is not amendable by the user, it could be fully done on the backend (why isnt it amendable by the user?)

@castaway castaway left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm

@castaway castaway merged commit 6ae0fe5 into runbox:master Jun 18, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants