Skip to content

chore: add e2e tests for custom lint for OAS#9953

Draft
Ali-Sab wants to merge 1 commit into
feat/custom-lint-rulesfrom
chore/custom-lint-rules-e2e-tests
Draft

chore: add e2e tests for custom lint for OAS#9953
Ali-Sab wants to merge 1 commit into
feat/custom-lint-rulesfrom
chore/custom-lint-rules-e2e-tests

Conversation

@Ali-Sab
Copy link
Copy Markdown
Contributor

@Ali-Sab Ali-Sab commented May 26, 2026

No description provided.

Comment thread packages/insomnia-smoke-test/server/cloud-sync-api.ts Fixed
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds Playwright smoke coverage for uploading/removing custom Spectral rulesets for OAS design documents, including persistence across relaunch, cloud-sync propagation, and git-sync filesystem mirroring. To enable deterministic uploads in E2E, it introduces a Playwright-only hook to bypass the native file picker dialog.

Changes:

  • Add Playwright smoke tests covering custom ruleset upload/remove, relaunch persistence, cloud-sync round-trips, and git-sync .spectral.yaml mirroring.
  • Add a Playwright-only showOpenDialog IPC hook that returns queued dialog results instead of opening a native dialog.
  • Extend the cloud-sync mock server to support a “Design Project”, multi-user team member keys, and decrypt+unzip blob uploads for persistence.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/insomnia/src/main/ipc/electron.ts Adds a Playwright-only interception path for showOpenDialog to support deterministic E2E uploads.
packages/insomnia-smoke-test/tests/smoke/custom-lint-rules.test.ts New E2E suite validating custom ruleset behavior across relaunch, cloud sync, and git sync.
packages/insomnia-smoke-test/server/cloud-sync-api.ts Enhances the mock cloud-sync API with design project fixtures, multi-user behavior, and blob decryption on upload.
packages/insomnia-smoke-test/playwright/test.ts Extracts a reusable Insomnia launcher and tracks/cleans up multiple Electron app instances per test.
packages/insomnia-smoke-test/playwright/pages/insomnia-app.ts Adds relaunch support and an API to queue showOpenDialog responses via Electron main-process eval.
packages/insomnia-smoke-test/fixtures/files/custom.spectral.yaml Adds a minimal custom Spectral ruleset fixture used by the E2E tests.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/insomnia/src/main/ipc/electron.ts Outdated
Comment thread packages/insomnia-smoke-test/tests/smoke/custom-lint-rules.test.ts
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 26, 2026

✅ Circular References Report

Generated at: 2026-05-26T15:55:28.233Z
Status: ✅ NO CHANGE

Summary

Metric Base (feat/custom-lint-rules) PR Change
Total Circular References 19 19 0 (0.00%)
Click to view all circular references in PR (19)
insomnia-inso/src/db/models/types.ts -> insomnia-inso/src/db/types.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/cancellation.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/cancellation.ts -> insomnia/src/script-executor.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/cancellation.ts -> insomnia/src/script-executor.ts -> insomnia/src/scripting/require-interceptor.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/concurrency.ts
insomnia/src/network/network.ts -> insomnia/src/common/render.ts
insomnia/src/network/network.ts -> insomnia/src/common/render.ts -> insomnia/src/templating/index.ts -> insomnia/src/plugins/index.ts -> insomnia/src/plugins/context/app.ts -> insomnia/src/templating/types.ts -> insomnia/src/plugins/context/network.ts
insomnia/src/network/network.ts -> insomnia/src/main/network/get-auth-header.ts -> insomnia/src/main/network/o-auth-2/get-token.ts
insomnia/src/plugins/index.ts -> insomnia/src/plugins/context/app.ts -> insomnia/src/templating/types.ts -> insomnia/src/plugins/context/store.ts
insomnia/src/plugins/index.ts -> insomnia/src/plugins/misc.ts
insomnia/src/templating/base-extension-worker.ts -> insomnia/src/templating/worker.ts
insomnia/src/templating/index.ts -> insomnia/src/templating/base-extension.ts
insomnia/src/templating/types.ts -> insomnia/src/plugins/context/network.ts
insomnia/src/templating/types.ts -> insomnia/src/templating/utils.ts
insomnia/src/ui/components/settings/import-export.tsx -> insomnia/src/ui/components/modals/export-requests-modal.tsx
insomnia/src/ui/components/tabs/tab-list.tsx -> insomnia/src/ui/components/tabs/tab.tsx
insomnia/src/ui/components/templating/tag-editor-arg-sub-form.tsx -> insomnia/src/ui/components/templating/external-vault/external-vault-form.tsx
insomnia/src/ui/components/viewers/response-viewer.tsx -> insomnia/src/ui/components/viewers/response-multipart-viewer.tsx
Click to view all circular references in base branch (19)
insomnia-inso/src/db/models/types.ts -> insomnia-inso/src/db/types.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/cancellation.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/cancellation.ts -> insomnia/src/script-executor.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/cancellation.ts -> insomnia/src/script-executor.ts -> insomnia/src/scripting/require-interceptor.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/concurrency.ts
insomnia/src/network/network.ts -> insomnia/src/common/render.ts
insomnia/src/network/network.ts -> insomnia/src/common/render.ts -> insomnia/src/templating/index.ts -> insomnia/src/plugins/index.ts -> insomnia/src/plugins/context/app.ts -> insomnia/src/templating/types.ts -> insomnia/src/plugins/context/network.ts
insomnia/src/network/network.ts -> insomnia/src/main/network/get-auth-header.ts -> insomnia/src/main/network/o-auth-2/get-token.ts
insomnia/src/plugins/index.ts -> insomnia/src/plugins/context/app.ts -> insomnia/src/templating/types.ts -> insomnia/src/plugins/context/store.ts
insomnia/src/plugins/index.ts -> insomnia/src/plugins/misc.ts
insomnia/src/templating/base-extension-worker.ts -> insomnia/src/templating/worker.ts
insomnia/src/templating/index.ts -> insomnia/src/templating/base-extension.ts
insomnia/src/templating/types.ts -> insomnia/src/plugins/context/network.ts
insomnia/src/templating/types.ts -> insomnia/src/templating/utils.ts
insomnia/src/ui/components/settings/import-export.tsx -> insomnia/src/ui/components/modals/export-requests-modal.tsx
insomnia/src/ui/components/tabs/tab-list.tsx -> insomnia/src/ui/components/tabs/tab.tsx
insomnia/src/ui/components/templating/tag-editor-arg-sub-form.tsx -> insomnia/src/ui/components/templating/external-vault/external-vault-form.tsx
insomnia/src/ui/components/viewers/response-viewer.tsx -> insomnia/src/ui/components/viewers/response-multipart-viewer.tsx

Analysis

No Change: This PR does not introduce or remove any circular references.


This report was generated automatically by comparing against the feat/custom-lint-rules branch.

@Ali-Sab Ali-Sab force-pushed the chore/custom-lint-rules-e2e-tests branch from dbb03fe to 4d54dd0 Compare May 26, 2026 04:41
Comment thread packages/insomnia-smoke-test/server/cloud-sync-api.ts Fixed
@Ali-Sab Ali-Sab force-pushed the chore/custom-lint-rules-e2e-tests branch 4 times, most recently from 66bf7be to 3bb5ae0 Compare May 26, 2026 14:42
@Ali-Sab Ali-Sab force-pushed the chore/custom-lint-rules-e2e-tests branch from 3bb5ae0 to 39de451 Compare May 26, 2026 15:50
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