fix: resolve feature audit UX and test issues - #148
Conversation
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
|
Hey There! and thank you for opening this pull request! 📝👋🏼 We require pull request titles to follow the Conventional Commits Spec and it looks like your proposed title needs to be adjusted. Details: |
There was a problem hiding this comment.
Thank you for creating your first Pull Request and for being a part of the open signing revolution! 💚🚀
Feel free to hop into our community in Discord
There was a problem hiding this comment.
Pull request overview
This PR addresses several audited UX workflow issues (envelope editor autosave/recipient removal ordering, teamless-user dashboard empty state guidance, theme hydration) while also stabilizing Playwright E2E coverage and local/dev operational behavior (deterministic seeding, optional job-provider loading, healthier Compose checks, and more robust selectors/waits in tests).
Changes:
- Made Prisma seeding deterministic and limited execution to explicit
*-seed.tsseed scripts. - Made jobs provider initialization lazy/optional and adjusted BullMQ board bootstrapping to avoid eager imports.
- Stabilized E2E: improved Playwright config (workers/baseURL), reduced flakiness via stronger locators/retries/timeouts, and updated/added coverage for updated UX flows.
Reviewed changes
Copilot reviewed 30 out of 40 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/prisma/seed-database.ts | Deterministic seed discovery by filtering/sorting seed scripts. |
| packages/lib/jobs/client/client.ts | Lazy async provider initialization and async-safe API handler/triggering. |
| packages/lib/jobs/client/bullmq.ts | Defers Bull Board-related imports to runtime to keep dependencies optional. |
| packages/lib/client-only/providers/envelope-editor-provider.tsx | Refines envelope state updates and autosave flush ordering to prevent recipient/field race conditions. |
| packages/app-tests/playwright.config.ts | Uses computed worker count and configurable baseURL for more stable test runs. |
| packages/app-tests/e2e/webhooks/webhooks-crud.spec.ts | Stabilizes dropdown closing interaction via more robust locator. |
| packages/app-tests/e2e/user/password.spec.ts | Switches to relative navigation for baseURL compatibility and consistency. |
| packages/app-tests/e2e/user/auth-flow.spec.ts | Updates auth expectations for PSD flows + adds teamless-user dashboard empty state assertions. |
| packages/app-tests/e2e/templates/direct-templates.spec.ts | Adds explicit waits for “Complete”/“Sign” steps to reduce flakiness. |
| packages/app-tests/e2e/templates/bulk-template-actions.spec.ts | Adds preconditions and improves toast timing/awaiting for bulk flows. |
| packages/app-tests/e2e/templates-flow/template-autosave-fields-step.spec.ts | Replaces brittle text selectors with data-attribute selectors. |
| packages/app-tests/e2e/teams/team-signature-settings.spec.ts | Adds resilient “open signature dialog” helper with retry semantics. |
| packages/app-tests/e2e/scenarios/field-transparency-and-positioning.spec.ts | Reworks scenario to seed deterministic data and rely less on existing DB state. |
| packages/app-tests/e2e/public-profiles/public-profiles.spec.ts | Tightens role selectors and adds explicit waits for step transitions. |
| packages/app-tests/e2e/pdf-viewer/pdf-viewer.spec.ts | Adds retry-based click/transition assertion for “View” action. |
| packages/app-tests/e2e/organisations/organisation-team-preferences.spec.ts | Uses stable testid for date format trigger. |
| packages/app-tests/e2e/organisations/manage-organisation.spec.ts | Seeds admin user explicitly for org management test. |
| packages/app-tests/e2e/fixtures/generic.ts | Increases toast visibility timeout to reduce flaky timing. |
| packages/app-tests/e2e/fixtures/authentication.ts | Adds retry logic for CSRF token fetch in API sign-in helper. |
| packages/app-tests/e2e/envelope-editor-v2/envelope-save-as-template.spec.ts | Uses shared dropdown helper and makes template counter assertions more parallel-safe. |
| packages/app-tests/e2e/envelope-editor-v2/envelope-recipients.spec.ts | Makes recipient UI assertions robust by matching rows by email rather than index. |
| packages/app-tests/e2e/envelope-editor-v2/envelope-fields.spec.ts | Uses polling helper for Konva field counts to reduce race conditions. |
| packages/app-tests/e2e/documents/find-documents.spec.ts | Stabilizes sender filter assertions and avoids brittle member indexing. |
| packages/app-tests/e2e/documents/bulk-document-actions.spec.ts | Adds preconditions and improves toast timing/awaiting for bulk flows. |
| packages/app-tests/e2e/document-flow/stepper-component.spec.ts | Adds retry-based logic around approval dialog appearance. |
| packages/app-tests/e2e/api/v1/document-sending.spec.ts | Updates test expectation for sending documents with non-signature fields. |
| docker/development/compose.yml | Improves Postgres healthcheck to include DB name and correct env escaping. |
| apps/remix/app/routes/_authenticated+/dashboard.tsx | Adjusts empty state guidance + hides “Create organisation” action for non-admins. |
| apps/remix/app/root.tsx | Removes data-theme attribute to prevent theme hydration mismatch. |
| apps/remix/app/components/general/envelope-editor/envelope-editor-recipient-form.tsx | Normalizes signing orders and ensures recipient removal is enqueued promptly for autosave ordering. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| public constructor(definitions: T) { | ||
| this._provider = match(env('NEXT_PRIVATE_JOBS_PROVIDER')) | ||
| .with('inngest', () => InngestJobProvider.getInstance()) | ||
| .with('bullmq', () => BullMQJobProvider.getInstance()) | ||
| .otherwise(() => LocalJobProvider.getInstance()); | ||
|
|
||
| definitions.forEach((definition) => { | ||
| this._provider.defineJob(definition); | ||
| }); | ||
| this._provider = this.initializeProvider(definitions); | ||
| } |
| } | ||
|
|
||
| return csrfToken; | ||
| throw lastError; |
Summary
Verification
git diff --checkpassed