-
Notifications
You must be signed in to change notification settings - Fork 13
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
Add tests for Demo route and components on it #1977
Conversation
Warning Rate limit exceeded@VasylMarchuk has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 14 minutes and 31 seconds before requesting another review. How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. WalkthroughThe updates enhance the structure and testability of components in an Ember.js application, improving layout without disrupting core functionality. Key changes include adding Changes
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configuration File (
|
Test Results 1 files ± 0 1 suites ±0 5m 58s ⏱️ - 1m 15s Results for commit 1f782bb. ± Comparison against base commit f92f666. This pull request removes 3 and adds 14 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
Codecov ReportAll modified and coverable lines are covered by tests ✅ ✅ All tests successful. No failed tests found. Additional details and impacted files📢 Thoughts on this report? Let us know! |
Bundle ReportChanges will decrease total bundle size by 1.23kB ⬇️
|
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: 0
Outside diff range, codebase verification and nitpick comments (2)
tests/pages/course-page.js (2)
18-18
: Updated import fromCodeMirror
toFileContentsCard
.The search results indicate that
CodeMirror
is still actively referenced in various test files. Ensure that all references toCodeMirror
are updated or removed as needed across the project to maintain consistency.
- Files with
CodeMirror
references:
tests/integration/components/code-mirror-test.js
tests/acceptance/demo-page-test.js
tests/acceptance/demo-page/file-contents-card-test.js
tests/acceptance/demo-page/code-mirror-test.js
tests/acceptance/course-page/view-code-examples-test.js
Analysis chain
Updated import from
CodeMirror
toFileContentsCard
.This change aligns with the PR's focus on enhancing page objects for specific components. Ensure that all references to
CodeMirror
are updated or removed as needed across the project.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that all references to `CodeMirror` are updated or removed. # Test: Search for `CodeMirror` in the codebase. Expect: No occurrences or only occurrences related to other contexts. rg --type python -A 5 $'CodeMirror'Length of output: 65
Script:
#!/bin/bash # Description: Verify that all references to `CodeMirror` are updated or removed. # Test: Search for `CodeMirror` in the codebase. Expect: No occurrences or only occurrences related to other contexts. rg --type js -A 5 $'CodeMirror'Length of output: 27000
58-58
: ReplacedclickOnExpandButton
withfileContentsCard
.The refactoring to replace
clickOnExpandButton
withfileContentsCard
is not fully complete. There are still instances ofclickOnExpandButton
in thecourse-page
tests that need to be updated or deprecated. Please ensure that all occurrences are replaced withfileContentsCard
to avoid breaking existing functionality.
tests/acceptance/course-page/view-code-examples-test.js
tests/acceptance/course-page/language-guides-test.js
Analysis chain
Replaced
clickOnExpandButton
withfileContentsCard
.This change seems to be part of the refactoring to use more descriptive and component-specific page objects. Confirm that this change does not break existing functionality and that all tests relying on the previous
clickOnExpandButton
method are updated accordingly.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that all tests relying on the previous `clickOnExpandButton` method are updated. # Test: Search for `clickOnExpandButton` in the test files. Expect: No occurrences or only occurrences that are commented out or deprecated. rg --type python -A 5 $'clickOnExpandButton'Length of output: 74
Script:
#!/bin/bash # Description: Verify that all tests relying on the previous `clickOnExpandButton` method are updated. # Test: Search for `clickOnExpandButton` in the test files. Expect: No occurrences or only occurrences that are commented out or deprecated. rg 'clickOnExpandButton'Length of output: 688
Script:
#!/bin/bash # Description: Verify that `fileContentsCard` is being used in the test files. # Test: Search for `fileContentsCard` in the test files. rg 'fileContentsCard'Length of output: 9297
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (16)
- app/components/course-page/course-stage-step/community-solution-card/content.hbs (1 hunks)
- app/components/dark-mode-toggle.hbs (1 hunks)
- app/components/file-contents-card.hbs (3 hunks)
- app/templates/demo.hbs (1 hunks)
- app/templates/demo/dark-mode-toggle.hbs (1 hunks)
- tests/acceptance/course-page/view-code-examples-test.js (1 hunks)
- tests/acceptance/demo-page-test.js (1 hunks)
- tests/acceptance/demo-page/code-mirror-test.js (1 hunks)
- tests/acceptance/demo-page/dark-mode-toggle-test.js (1 hunks)
- tests/acceptance/demo-page/file-contents-card-test.js (1 hunks)
- tests/integration/components/code-mirror-test.js (1 hunks)
- tests/pages/components/code-mirror.ts (2 hunks)
- tests/pages/components/dark-mode-toggle.ts (1 hunks)
- tests/pages/components/file-contents-card.ts (1 hunks)
- tests/pages/course-page.js (2 hunks)
- tests/pages/demo-page.ts (1 hunks)
Files skipped from review due to trivial changes (1)
- app/templates/demo/dark-mode-toggle.hbs
Additional comments not posted (18)
tests/pages/components/dark-mode-toggle.ts (1)
1-14
: Well-structured page object model for Dark Mode ToggleThe page object model is well-structured and follows Ember's conventions. The methods
findOptionButtonByText
andclickOnOptionButton
are clear and should function correctly provided that thebuttons
collection is accurately defined with the correct selector.app/components/dark-mode-toggle.hbs (1)
1-11
: Template restructuring indark-mode-toggle.hbs
The move of the
<dark-mode-toggle>
component wrapper outside the<each>
block is a significant change. This should ensure that the toggle functionality is applied consistently across all preference buttons. It's important to verify that this change does not introduce any side effects, particularly in terms of event handling and state management within the component.tests/acceptance/demo-page/code-mirror-test.js (1)
1-18
: Comprehensive tests for the CodeMirror component on the Demo pageThe tests provided are well-structured and cover both navigation and rendering aspects of the CodeMirror component. The use of
currentURL()
andhasRendered
checks are appropriate and should effectively validate the functionality of the component within the Demo route.tests/pages/components/file-contents-card.ts (1)
1-34
: Well-implemented page object model for File Contents CardThe page object model for the File Contents Card is comprehensive, covering various interactions such as clicking, hovering, and text retrieval. The use of
clickable
,triggerable
, andtext
fromember-cli-page-object
is appropriate and should facilitate robust testing of the component.tests/pages/components/code-mirror.ts (3)
9-27
: Enhanced structure foreditor.scroller
The nested structure under
editor.scroller
withgutters
,lineNumbers
, andfoldGutter
is well-organized and follows a logical hierarchy. This should improve the maintainability and readability of the component's page object.
50-55
: New methodsetLineText
implementationThe implementation of
setLineText
to focus, click, fill in, and blur a line is a robust way to interact with the CodeMirror component programmatically. This addition should facilitate more precise testing scenarios.
42-42
: Check for potential duplication ofcomponentText
The
componentText
property has been moved outside theeditor
section. Ensure that this move does not duplicate or conflict with similar properties elsewhere in the component or application.Verification successful
No duplication of
componentText
foundThe
componentText
property is unique within thetests/pages/components
directory and does not conflict with other properties.
tests/pages/components/code-mirror.ts
:componentText: text()
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Search for potential duplication of `componentText` in other components. # Test: Search for `componentText` usage. Expect: Unique occurrences in the context of CodeMirror. rg --type typescript 'componentText' -- 'tests/pages/components'Length of output: 97
Script:
#!/bin/bash # Description: Search for potential duplication of `componentText` in other components. # Test: Search for `componentText` usage. Expect: Unique occurrences in the context of CodeMirror. rg 'componentText' --glob 'tests/pages/components/*.ts'Length of output: 118
tests/acceptance/demo-page-test.js (1)
6-34
: Comprehensive tests for the Demo pageThe tests cover various scenarios including redirection, tab presence, default active tab, and tab switching functionality. These tests are well-structured and appear to cover the intended behaviors effectively.
app/templates/demo.hbs (1)
11-11
: Addition ofdata-test-demo-tab-switcher
Adding the
data-test-demo-tab-switcher
attribute enhances the testability of the tab switcher component. This is a good practice for facilitating more targeted and reliable tests.tests/pages/demo-page.ts (1)
6-69
: Well-structured page objects for the Demo pageThe page objects for
tabSwitcher
anddemoTabs
are well-defined. Methods likefindTabByText
andclickOnTab
are implemented correctly, facilitating easy interaction with the UI components. This structure should support robust and maintainable tests.app/components/file-contents-card.hbs (3)
3-3
: Added data attributes for component testing.Adding
data-test-file-contents-card-component
enhances the testability of the component, allowing for more robust integration and end-to-end tests.
27-32
: Enhanced interactive elements for expand/collapse functionality.The addition of
data-test-file-contents-card-header-hover-target
on the hover target and specific data attributes on thePill
components (data-test-file-contents-card-header-expand-button
anddata- test-file-contents-card-header-collapse-button
) improves the testability and accessibility of these interactive elements.
66-66
: Added data attribute to collapse button.The
data-test-file-contents-card-collapse-button
attribute on theTertiaryButton
component will aid in more precise targeting during automated testing, ensuring that functionality related to collapsing the file content is easily testable.app/components/course-page/course-stage-step/community-solution-card/content.hbs (1)
57-84
: Reorganized layout within theFileContentsCard
component.Moving the
<div class="contents">
outside theFileContentsCard
component and adjusting the nesting of elements within it appears to be aimed at improving the structural clarity and possibly the styling of the component. Ensure this change aligns with the intended visual and functional requirements of the application.Verification successful
Review the test cases for
FileContentsCard
to ensure coverage of recent changes.The search results indicate that the
FileContentsCard
component is tested in various files. To ensure that the reorganization of the layout within this component does not break existing functionality or visual requirements, review the following test files:
tests/pages/course-page.js
tests/acceptance/course-page/view-code-examples-test.js
tests/acceptance/demo-page-test.js
tests/acceptance/demo-page/file-contents-card-test.js
Verify that these tests cover the visual and functional aspects of the
FileContentsCard
component, especially in the context of the changes made.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the visual and functional requirements of the reorganized layout. # Test: Search for CSS or JS that might be affected by the layout change. rg --type css --type js 'FileContentsCard'Length of output: 944
tests/acceptance/demo-page/dark-mode-toggle-test.js (1)
1-82
: Comprehensive tests added forDarkModeToggle
component.The tests cover various scenarios including URL correctness, component rendering, localStorage preference handling, and system preference interaction. These tests are well-structured and appear to cover the critical functionalities of the
DarkModeToggle
component effectively.tests/acceptance/demo-page/file-contents-card-test.js (1)
1-116
: Comprehensive tests added forFileContentsCard
component.The tests thoroughly cover the collapsibility feature, interaction with different component options like
isCollapsible
,scrollIntoViewOnCollapse
,headerTooltipText
, andfoldGutter
. These tests are structured to validate both the presence and absence of UI elements based on the component state, ensuring robust behavior under various scenarios.tests/integration/components/code-mirror-test.js (1)
84-84
: Simplified interaction withCodeMirror
by directly setting text.This change improves the clarity and reliability of tests by directly setting the text content of a line. Ensure that all related tests are updated to reflect this new method of interaction and verify that it does not introduce regressions in the behavior of the
CodeMirror
component.Verification successful
Simplified interaction with
CodeMirror
by directly setting text.This change improves the clarity and reliability of tests by directly setting the text content of a line. The search results confirm that the new method
setLineText
is used in the tests. Ensure that all instances where text is set inCodeMirror
use this method to maintain consistency and avoid regressions.
tests/integration/components/code-mirror-test.js
usesawait codeMirror.setLineText(0, 'New Content');
.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that all related tests are updated and check for regressions. # Test: Search for tests related to `CodeMirror` interaction. Expect: All tests should use the new method for setting text. rg --type python -A 5 $'CodeMirror'Length of output: 65
Script:
#!/bin/bash # Description: Verify that all related tests are updated and check for regressions. # Test: Search for tests related to `CodeMirror` interaction. Expect: All tests should use the new method for setting text. rg --type js -A 5 'CodeMirror'Length of output: 27000
tests/acceptance/course-page/view-code-examples-test.js (1)
173-200
: Added test for viewing unchanged files in code examples.This test enhances coverage by verifying the functionality of viewing unchanged files within code examples. Ensure the test setup accurately reflects the intended user interactions and that all assertions are correctly validating the expected UI elements and content.
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: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (2)
- tests/acceptance/demo-page-test.js (1 hunks)
- tests/acceptance/demo-page/dark-mode-toggle-test.js (1 hunks)
Files skipped from review as they are similar to previous changes (2)
- tests/acceptance/demo-page-test.js
- tests/acceptance/demo-page/dark-mode-toggle-test.js
app/components/course-page/course-stage-step/community-solution-card/content.hbs
Outdated
Show resolved
Hide resolved
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: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (1)
- app/components/dark-mode-toggle.hbs (1 hunks)
Files skipped from review due to trivial changes (1)
- app/components/dark-mode-toggle.hbs
a15471b
to
230a675
Compare
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: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (3)
- app/components/course-page/course-stage-step/community-solution-card/content.hbs (1 hunks)
- app/components/dark-mode-toggle.hbs (1 hunks)
- app/components/file-contents-card.hbs (3 hunks)
Files skipped from review due to trivial changes (2)
- app/components/course-page/course-stage-step/community-solution-card/content.hbs
- app/components/file-contents-card.hbs
Files skipped from review as they are similar to previous changes (1)
- app/components/dark-mode-toggle.hbs
af03460
to
1210122
Compare
1210122
to
a2d6c42
Compare
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
Outside diff range, codebase verification and nitpick comments (3)
tests/acceptance/demo-page/dark-mode-toggle-test.js (3)
8-12
: Consider adding error handling.The
setLocalStoragePreference
function lacks error handling, which could be useful to catch potential issues with therun
loop.function setLocalStoragePreference(darkModeService, preference) { run(() => { try { darkModeService.localStoragePreference = preference; } catch (error) { console.error('Error setting localStoragePreference:', error); } }); }
14-18
: Consider adding error handling.The
setSystemPreference
function lacks error handling, which could be useful to catch potential issues with therun
loop.function setSystemPreference(darkModeService, preference) { run(() => { try { darkModeService.systemPreference = preference; } catch (error) { console.error('Error setting systemPreference:', error); } }); }
24-28
: Consider adding more assertions.The
it works
test could benefit from additional assertions to verify the initial state of the component.test('it works', async function (assert) { await demoPage.demoTabs.darkModeToggle.visit(); assert.strictEqual(currentURL(), '/demo/dark-mode-toggle', 'URL is correct'); assert.ok(demoPage.demoTabs.darkModeToggle.component.isVisible, 'component has rendered'); + assert.strictEqual(demoPage.demoTabs.darkModeToggle.currentLocalStoragePreference.text, 'null', 'localStorage preference is null by default'); + assert.strictEqual(demoPage.demoTabs.darkModeToggle.currentSystemPreference.text, '', 'system preference is empty by default'); });
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (3)
- app/templates/application.hbs (1 hunks)
- tests/acceptance/demo-page/dark-mode-toggle-test.js (1 hunks)
- tests/pages/demo-page.ts (1 hunks)
Files skipped from review due to trivial changes (1)
- app/templates/application.hbs
Files skipped from review as they are similar to previous changes (1)
- tests/pages/demo-page.ts
Additional context used
Biome
tests/acceptance/demo-page/dark-mode-toggle-test.js
[error] 65-87: This code is unreachable
... because this statement will throw an exception beforehand
(lint/correctness/noUnreachable)
Additional comments not posted (3)
tests/acceptance/demo-page/dark-mode-toggle-test.js (3)
30-38
: LGTM!The
it shows current localStorage preference
test is comprehensive and correct.
41-46
: LGTM!The
it shows current system preference
test is comprehensive and correct.
49-57
: LGTM!The
it updates localStorage preference after clicking on mode-switching buttons
test is comprehensive and correct.
2136ad6
to
6c322b0
Compare
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: CHILL
Files selected for processing (3)
- app/templates/application.hbs (1 hunks)
- tests/acceptance/demo-page/dark-mode-toggle-test.js (1 hunks)
- tests/pages/demo-page.ts (1 hunks)
Files skipped from review due to trivial changes (1)
- app/templates/application.hbs
Files skipped from review as they are similar to previous changes (1)
- tests/pages/demo-page.ts
Additional context used
Biome
tests/acceptance/demo-page/dark-mode-toggle-test.js
[error] 65-87: This code is unreachable
... because this statement will throw an exception beforehand
(lint/correctness/noUnreachable)
Additional comments not posted (6)
tests/acceptance/demo-page/dark-mode-toggle-test.js (6)
8-11
: LGTM!The function
setLocalStoragePreference
correctly sets thelocalStoragePreference
using therun
loop.
14-17
: LGTM!The function
setSystemPreference
correctly sets thesystemPreference
using therun
loop.
24-28
: LGTM!The test case
it works
correctly verifies the component's visibility and URL.
30-38
: LGTM!The test case
it shows current localStorage preference
correctly sets and verifies thelocalStoragePreference
for different values.
41-46
: LGTM!The test case
it shows current system preference
correctly sets and verifies thesystemPreference
for different values.
49-57
: LGTM!The test case
it updates localStorage preference after clicking on mode-switching buttons
correctly verifies thelocalStoragePreference
after interacting with the mode-switching buttons.
6c322b0
to
594af31
Compare
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: CHILL
Files selected for processing (3)
- app/templates/application.hbs (1 hunks)
- tests/acceptance/demo-page/dark-mode-toggle-test.js (1 hunks)
- tests/pages/demo-page.ts (1 hunks)
Files skipped from review due to trivial changes (1)
- app/templates/application.hbs
Files skipped from review as they are similar to previous changes (1)
- tests/pages/demo-page.ts
Additional context used
Biome
tests/acceptance/demo-page/dark-mode-toggle-test.js
[error] 65-87: This code is unreachable
... because this statement will throw an exception beforehand
(lint/correctness/noUnreachable)
Additional comments not posted (7)
tests/acceptance/demo-page/dark-mode-toggle-test.js (7)
1-6
: Imports look good.The necessary modules and helpers for testing are correctly imported.
8-12
: Helper functionsetLocalStoragePreference
looks good.The function correctly sets the
localStoragePreference
of thedarkModeService
using therun
loop.
14-18
: Helper functionsetSystemPreference
looks good.The function correctly sets the
systemPreference
of thedarkModeService
using therun
loop.
24-28
: Test caseit works
looks good.The test case correctly verifies the rendering of the
DarkModeToggle
component.
30-39
: Test caseit shows current localStorage preference
looks good.The test case correctly sets and verifies the
localStoragePreference
using the helper function.
41-47
: Test caseit shows current system preference
looks good.The test case correctly sets and verifies the
systemPreference
using the helper function.
49-58
: Test caseit updates localStorage preference after clicking on mode-switching buttons
looks good.The test case correctly simulates user interactions and verifies the
localStoragePreference
.
594af31
to
58ffdf0
Compare
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: CHILL
Files selected for processing (14)
- app/components/file-contents-card.hbs (3 hunks)
- app/templates/application.hbs (1 hunks)
- app/templates/demo.hbs (1 hunks)
- app/templates/demo/dark-mode-toggle.hbs (1 hunks)
- tests/acceptance/course-page/view-code-examples-test.js (1 hunks)
- tests/acceptance/demo-page-test.js (1 hunks)
- tests/acceptance/demo-page/code-mirror-test.js (1 hunks)
- tests/acceptance/demo-page/dark-mode-toggle-test.js (1 hunks)
- tests/acceptance/demo-page/file-contents-card-test.js (1 hunks)
- tests/integration/components/code-mirror-test.js (1 hunks)
- tests/pages/components/code-mirror.ts (2 hunks)
- tests/pages/components/file-contents-card.ts (1 hunks)
- tests/pages/course-page.js (2 hunks)
- tests/pages/demo-page.ts (1 hunks)
Files skipped from review due to trivial changes (3)
- app/components/file-contents-card.hbs
- app/templates/application.hbs
- tests/pages/components/file-contents-card.ts
Files skipped from review as they are similar to previous changes (10)
- app/templates/demo.hbs
- app/templates/demo/dark-mode-toggle.hbs
- tests/acceptance/course-page/view-code-examples-test.js
- tests/acceptance/demo-page-test.js
- tests/acceptance/demo-page/code-mirror-test.js
- tests/acceptance/demo-page/dark-mode-toggle-test.js
- tests/acceptance/demo-page/file-contents-card-test.js
- tests/integration/components/code-mirror-test.js
- tests/pages/course-page.js
- tests/pages/demo-page.ts
Additional comments not posted (4)
tests/pages/components/code-mirror.ts (4)
13-26
: LGTM! The addition of thegutters
property is well-structured.The
gutters
property and its nested properties (allGutters
,lineNumbers
, andfoldGutter
) are clearly defined, enhancing the maintainability and readability of the code.
45-45
: LGTM! The addition of thegutters
alias enhances usability.The
gutters
alias provides a convenient way to access the newly structured gutter elements, improving the overall usability of the component.
48-48
: LGTM! The addition of thehasRendered
alias is a useful enhancement.The
hasRendered
alias provides a clear and concise way to check if the content is present.
50-55
: LGTM! ThesetLineText
method is well-implemented.The
setLineText
method allows users to set the text of a specific line in the editor, facilitating programmatic editing of individual lines.
Related to #1231 #1415
Brief
This adds a bunch of tests for the Demo route, and also for components currently included on it.
Details
CodeMirror
DarkModeToggle
FileContentsCard
CoursePage
DemoPage
Demo
route itselfDemo > CodeMirror
CodeMirror
component has it's own integration testsDemo > DarkModeToggle
(visiting and clicking on things)Demo > FileContentsCard
(visiting and clicking on things)course-admin | view-code-example
test intocourse-page | view-code-examples
Included tests
Checklist
[percy]
in the message to trigger)Summary by CodeRabbit
New Features
Bug Fixes
Tests