Skip to content
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

Experimental merge main #10611

Merged
merged 42 commits into from
Jul 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
e8a1e7c
Jump-to-source falls back to parent user event if marker frame cannot…
bvaughn Jun 14, 2024
3080315
Add data-private attributes (#10562)
bvaughn Jun 14, 2024
52c9297
Remove [data-private] CSS style (#10563)
bvaughn Jun 14, 2024
1adb38c
Reset selected test event when test changes (#10565)
bvaughn Jun 14, 2024
bcfc8fc
Improve visual style for React/Reduxt not-loaded error messages (#10566)
bvaughn Jun 14, 2024
60faaa7
Log point panel should never show 1/0 (#10568)
bvaughn Jun 15, 2024
fa9e39a
Fix video toggle for horizontal DEV layout (#10569)
bvaughn Jun 17, 2024
7dcecab
Support multi-line print statements (#10570)
bvaughn Jun 18, 2024
fdbddbf
Stop mousedown event propagation in the Focuser (#10575)
hbenl Jun 18, 2024
ff16e3d
Adjusting contrast (#10572)
jonbell-lot23 Jun 18, 2024
28c1a69
Always use hoverTime for the screenshot when the user is hovering (#1…
hbenl Jun 19, 2024
6b6ecb0
Fix detection of async parent pauses outside of the focus window (#10…
hbenl Jun 19, 2024
59370c8
Remove LogRocket from Devtools (#10577)
bvaughn Jun 19, 2024
ca83c36
Improve heuristics for finding the user frame that dispatched a Redux…
markerikson Jun 20, 2024
c88885f
Log point panel saves pending edits when removing condition (#10579)
bvaughn Jun 21, 2024
88da868
Add option to notify user when processing is complete (#10582)
bvaughn Jun 24, 2024
82fead1
Guard against undefined value (#10581)
bvaughn Jun 24, 2024
0778fd1
Source viewer font-size fixes (#10580)
bvaughn Jun 24, 2024
6aa95fe
Better view element icon (#10583)
jonbell-lot23 Jun 25, 2024
d7dc141
Enable asserts (#10584)
Domiii Jun 26, 2024
b1e1a4c
Handle lack of `point.frame` (#10586)
Andarist Jun 26, 2024
d6b815e
Remove unused `jumpToClickEventFunctionLocation` (#10585)
Andarist Jun 26, 2024
bdc17b9
Improve video cursor display, especially for Cypress tests (#10587)
markerikson Jun 27, 2024
2e2ec99
Update the Cypress steps test to check for hover cursor position (#10…
markerikson Jun 28, 2024
35478c6
Clone protocol messages before adding them to redux (#10593)
hbenl Jul 2, 2024
06b89f4
Update RDT fork for 2024-07 (#10592)
markerikson Jul 2, 2024
36a460f
Use a proxy for mixpanel (#10594)
hbenl Jul 3, 2024
7400e37
Auto-scroll to the last failed test step (#10595)
hbenl Jul 3, 2024
2f13eb9
Don't show item count for cy.contains() events (#10597)
hbenl Jul 5, 2024
3cdee91
Fix tooltips (#10598)
hbenl Jul 5, 2024
d5b30c0
Removed left/right breakpoint arrows from Pause Info panel (#10601)
bvaughn Jul 8, 2024
925db84
Combined log point panel icons (#10602)
bvaughn Jul 8, 2024
b9563de
Switch meta e2e tests from breakpoints-02 to logpoints-01 (#10603)
bvaughn Jul 8, 2024
ea84bb2
Add "report a problem" UX to Devtools surfaces (#10596)
bvaughn Jul 8, 2024
606e120
Auto-expand framework frames when one of them is selected (#10606)
hbenl Jul 9, 2024
4baaa3a
Remove breakpoints (#10604)
bvaughn Jul 9, 2024
d595fd6
Make rewind/fast-forward buttons more discoverable (#10607)
bvaughn Jul 10, 2024
d6f9492
Stop gathering element's CSS rules at the nearest HTML element (#10608)
Andarist Jul 10, 2024
4cc1d67
Display matched selector priority (#10609)
Andarist Jul 11, 2024
59132a7
Add hacky GraphQL operation name display (#10610)
markerikson Jul 14, 2024
94f06ed
Merge branch 'main' into merge-main
bvaughn Jul 16, 2024
b679f2f
Fix Lint
bvaughn Jul 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/e2e-tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ You'll also probably need to specifically share that recording as "Public", espe

We use 1 specific Playwright test recording which is a replay of the breakpoints-05 test from this repo. Similar to the instructions above, to update this to a more recent version, you can visit the dashboard for FE E2E Tests and select a more recent recording ID for that test.

We also now have a "golden recording" of one of our own `breakpoints-01` E2E test runs. This serves as a testbed for checking more advanced behaviors like the React and Redux routines. If we ever need to update this, just copy-paste the recording ID from a test run in our "Frontend E2E tests" workspace.
We also now have a "golden recording" of one of our own `logpoints-01` E2E test runs. This serves as a testbed for checking more advanced behaviors like the React and Redux routines. If we ever need to update this, just copy-paste the recording ID from a test run in our "Frontend E2E tests" workspace.

### Test Suite Dashboard Tests

Expand Down
2 changes: 1 addition & 1 deletion packages/e2e-tests/authenticated/logpoints-01.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ test(`authenticated/logpoints-01: Shared logpoints functionality`, async ({
const page = await context.newPage();
await load(page, recordingId, testUsers![1].apiKey, testScope);

const locator = await findPoints(page, "logpoint", { lineNumber });
const locator = await findPoints(page, { lineNumber });

// Verify point is not editable
await expect(await isPointEditable(locator)).toBe(false);
Expand Down
6 changes: 3 additions & 3 deletions packages/e2e-tests/examples.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

52 changes: 10 additions & 42 deletions packages/e2e-tests/helpers/pause-information-panel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@ async function toggleAccordionPane(page: Page, pane: Locator, targetState: "open
}
}

export async function closeBreakpointsAccordionPane(page: Page): Promise<void> {
await toggleAccordionPane(page, getBreakpointsAccordionPane(page), "closed");
}

export async function closeCallStackAccordionPane(page: Page): Promise<void> {
await toggleAccordionPane(page, getCallStackAccordionPane(page), "closed");
}
Expand All @@ -33,6 +29,8 @@ export async function closePrintStatementsAccordionPane(page: Page): Promise<voi
export async function expandAllScopesBlocks(page: Page): Promise<void> {
await debugPrint(page, "Expanding all Scopes blocks", "expandAllScopesBlocks");

await openPauseInformationPanel(page);

const scopesPanel = getScopesPanel(page);
const blocks = scopesPanel.locator('[data-test-name="ScopesInspector"]');

Expand All @@ -47,7 +45,7 @@ export async function expandAllScopesBlocks(page: Page): Promise<void> {

export async function closeSidePanel(page: Page) {
// Ensure that it's closed by forcing the "Pause" pane to open instead...
const pane = getBreakpointsAccordionPane(page);
const pane = getPrintStatementsAccordionPane(page);
const pauseButton = page.locator('[data-test-name="ToolbarButton-PauseInformation"]');
await pauseButton.click();
const isVisible = await pane.isVisible();
Expand All @@ -56,10 +54,6 @@ export async function closeSidePanel(page: Page) {
}
}

export function getBreakpointsAccordionPane(page: Page): Locator {
return page.locator('[data-test-id="AccordionPane-Breakpoints"]');
}

export function getCallStackAccordionPane(page: Page): Locator {
return page.locator('[data-test-id="AccordionPane-CallStack"]');
}
Expand Down Expand Up @@ -108,17 +102,13 @@ export function getScopesPanel(page: Page): Locator {
return page.locator('[data-test-name="ScopesList"]');
}

export async function openBreakpointsAccordionPane(page: Page): Promise<void> {
await toggleAccordionPane(page, getBreakpointsAccordionPane(page), "open");
}

export async function openCallStackPane(page: Page): Promise<void> {
await toggleAccordionPane(page, getCallStackAccordionPane(page), "open");
}

export async function openPauseInformationPanel(page: Page): Promise<void> {
// Only click if it's not already open; clicking again will collapse the side bar.
const pane = getBreakpointsAccordionPane(page);
const pane = getPrintStatementsAccordionPane(page);

let isVisible = await pane.isVisible();
if (!isVisible) {
Expand Down Expand Up @@ -158,14 +148,6 @@ export async function openScopeBlocks(page: Page, text: string): Promise<void> {
});
}

export async function resumeToLine(page: Page, line: number): Promise<void> {
await debugPrint(page, `Resuming to line ${chalk.bold(line)}`, "resumeToLine");

await clickCommandBarButton(page, "Resume");

await waitForPaused(page, line);
}

export async function clickCommandBarButton(page: Page, title: string): Promise<void> {
await debugPrint(page, title, "clickCommandBarButton");

Expand All @@ -190,23 +172,11 @@ export async function reverseStepOverToLine(page: Page, line: number) {
await waitForPaused(page, line);
}

export async function rewind(page: Page) {
await debugPrint(page, "Rewinding", "rewind");

await clickCommandBarButton(page, "Rewind Execution");
}

export async function rewindToLine(page: Page, line: number): Promise<void> {
await debugPrint(page, `Rewinding to line ${chalk.bold(line)}`, "rewindToLine");

await clickCommandBarButton(page, "Rewind Execution");

await waitForPaused(page, line);
}

export async function selectFrame(page: Page, index: number): Promise<void> {
await debugPrint(page, `Select frame ${chalk.bold(index)}`, "selectFrame");

await openPauseInformationPanel(page);

const framesPanel = getFramesPanel(page);

const frameListItems = framesPanel.locator(".frame");
Expand Down Expand Up @@ -362,7 +332,6 @@ export async function waitForScopeValue(

export function findPoints(
page: Page,
type: "logpoint" | "breakpoint",
options: {
sourceId?: SourceId;
lineNumber?: number;
Expand All @@ -372,8 +341,7 @@ export function findPoints(
const { columnIndex, lineNumber, sourceId } = options;

const selectorCriteria = [
'[data-test-name="Breakpoint"]',
`[data-test-type="${type}"]`,
'[data-test-name="LogPoint"]',
columnIndex != null ? `[data-test-column-index="${columnIndex}"]` : "",
lineNumber != null ? `[data-test-line-number="${lineNumber}"]` : "",
sourceId != null ? `[data-test-source-id="${sourceId}"]` : "",
Expand All @@ -383,17 +351,17 @@ export function findPoints(
}

export async function isPointEditable(pointLocator: Locator) {
const editButton = pointLocator.locator('[data-test-name="RemoveBreakpointButton"]');
const editButton = pointLocator.locator('[data-test-name="RemoveLogPointButton"]');
return (await editButton.count()) > 0;
}

export async function removePoint(pointLocator: Locator) {
await pointLocator.locator('[data-test-name="RemoveBreakpointButton"]').first().click();
await pointLocator.locator('[data-test-name="RemoveLogPointButton"]').first().click();
}

export async function togglePoint(page: Page, pointLocator: Locator, enabled: boolean) {
const targetState = enabled ? POINT_BEHAVIOR_ENABLED : POINT_BEHAVIOR_DISABLED_TEMPORARILY;
const toggle = pointLocator.locator('[data-test-name="BreakpointToggle"]');
const toggle = pointLocator.locator('[data-test-name="LogPointToggle"]');
const currentState = await toggle.getAttribute("date-test-state");
if (targetState !== currentState) {
await debugPrint(page, `Toggling point to ${targetState}`, "togglePoint");
Expand Down
Loading
Loading