-
Notifications
You must be signed in to change notification settings - Fork 4
feat: add integration tests to CI #138
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add integration tests to CI #138
Conversation
📝 WalkthroughWalkthroughEditorConfig: added a section for YAML files under Sequence Diagram(s)sequenceDiagram
participant CI as CI Workflow
participant Job as Integration Tests Job
participant Steps as Job Steps
CI->>Job: Trigger Integration Tests job (matrix)
activate Job
Job->>Steps: Checkout repo
Steps->>Steps: Setup Node.js
Steps->>Steps: Setup Python (matrix)
Steps->>Steps: Cache pip & install deps
Steps->>Steps: npm ci & compile TypeScript
rect rgba(102,187,106,0.12)
Note over Steps: Run integration tests under Xvfb (Linux/macOS)
Steps->>Steps: Prepare temp user-data dir
Steps->>Steps: xvfb-run -> run tests
end
Steps->>Job: Upload logs & results
deactivate Job
sequenceDiagram
participant UI as Extension UI
participant DE as deepnoteExplorerView
participant C as @deepnote/convert
UI->>DE: Request notebook import
activate DE
alt converter not loaded
DE->>C: await import('@deepnote/convert')
Note right of C: dynamic runtime load
end
DE->>DE: Convert notebook
DE-->>UI: Return imported notebook
deactivate DE
Possibly related PRs
Suggested reviewers
Pre-merge checks❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: ASSERTIVE Plan: Pro Disabled knowledge base sources:
📒 Files selected for processing (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
🔇 Additional comments (2)
Comment |
702e13e to
573d6b3
Compare
❌ 2 Tests Failed:
View the top 2 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (2)
.editorconfig(1 hunks).github/workflows/ci.yml(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: copilot-setup-steps
🔇 Additional comments (1)
.editorconfig (1)
19-21: Good EditorConfig scope for workflow files.The new YAML subsection correctly targets GitHub workflow and action files with appropriate 2-space indentation, which aligns with GitHub's conventions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (4)
src/notebooks/deepnote/deepnoteExplorerView.ts(3 hunks)src/test/constants.node.ts(1 hunks)src/test/constants.ts(1 hunks)src/test/datascience/setupTestEnvs.sh(2 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
**/!(*.node|*.web).ts
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Place shared cross-platform logic in common
.tsfiles (not suffixed with.nodeor.web)
Files:
src/test/constants.tssrc/notebooks/deepnote/deepnoteExplorerView.ts
**/*.{ts,tsx}
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
**/*.{ts,tsx}: Inject interfaces, not concrete classes
Avoid circular dependencies
Usel10n.t()for user-facing strings
Use typed error classes fromsrc/platform/errors/when throwing or handling errors
Use theILoggerservice instead ofconsole.log
Preserve error details while scrubbing PII in messages and telemetry
Include the Microsoft copyright header in source files
Prefer async/await and handle cancellation withCancellationToken
**/*.{ts,tsx}: Order class members (methods, fields, properties) first by accessibility (public/protected/private) and then alphabetically
Do not add the Microsoft copyright header to new files
Use Uri.joinPath() to construct file paths instead of manual string concatenation
Add a blank line after groups of const declarations and before return statements for readability
Separate third-party imports from local file imports
Files:
src/test/constants.tssrc/test/constants.node.tssrc/notebooks/deepnote/deepnoteExplorerView.ts
**/*.node.ts
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Use
*.node.tsfor Desktop-specific implementations that require full file system access and Python environments
Files:
src/test/constants.node.ts
src/notebooks/deepnote/**
📄 CodeRabbit inference engine (CLAUDE.md)
Deepnote integration code resides under src/notebooks/deepnote/
Files:
src/notebooks/deepnote/deepnoteExplorerView.ts
🧬 Code graph analysis (2)
src/test/constants.ts (1)
src/test/constants.node.ts (1)
JVSC_EXTENSION_ID_FOR_TESTS(19-19)
src/test/constants.node.ts (1)
src/test/constants.ts (1)
JVSC_EXTENSION_ID_FOR_TESTS(4-4)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Integration Tests
🔇 Additional comments (6)
src/test/constants.node.ts (1)
19-19: LGTM – consistent with constants.ts.Both test constant files now use the same extension ID.
src/notebooks/deepnote/deepnoteExplorerView.ts (4)
4-5: LGTM – clear rationale.The comment explains why dynamic imports are used instead of top-level imports.
361-365: LGTM – dynamic import defers module loading.The dynamic import delays loading
@deepnote/convertuntil needed, preventing activation failures in test environments where the package may be unresolvable. The surrounding catch block (lines 377-381) handles import failures.
434-438: LGTM – consistent pattern.Same dynamic import approach as line 361, with error handling at lines 451-455.
1-11: Verification complete—no static imports of @deepnote/convert remain.The codebase correctly uses only dynamic imports (lines 361 and 434 in deepnoteExplorerView.ts), matching the documented pattern. No other files contain static imports that would cause test environment activation failures.
src/test/constants.ts (1)
4-4: Extension ID cannot be verified in public marketplace; manual test verification required.The referenced extension
Deepnote.vscode-deepnotedoes not appear in search results for the VS Code Marketplace. Tests relying onJVSC_EXTENSION_ID_FOR_TESTSacross 13+ files will attempt to load this extension, and failure to locate it will break test infrastructure.Confirm:
- Extension is published (or available in your test environment)
- It exports compatible APIs (
Jupyter,IExtensionApi)- All dependent test files pass with the new ID
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
.github/workflows/ci.yml(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Integration Tests
🔇 Additional comments (1)
.github/workflows/ci.yml (1)
193-292: Job structure and integration test setup look solid.The new integration-tests job is well-structured with appropriate environment variables, Python 3.12 setup, screen capture dependencies, and xvfb-based headless execution. The caching, compilation, and artifact upload steps are sensible. Once action pinning is resolved, this should run reliably.
|
Closing this PR because the existing integration tests are not working in |
Summary by CodeRabbit
Tests
Chores
Refactor