You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@texera.apache.org by "mengw15 (via GitHub)" <gi...@apache.org> on 2026/08/29 10:09:16 UTC
[PR] test(frontend): render the computing-unit rows and the metrics popover [texera]
mengw15 opened a new pull request, #8102:
URL: https://github.com/apache/texera/pull/8102
### What changes were proposed in this PR?
`computing-unit-selection.component.html` never rendered its unit list or its metrics
popover with data, so the per-unit row controls and every metric row sat unexecuted. This
PR adds 17 cases that open both for real and drive them from the markup. No production
code changes.
- unit rows: selecting a row, the inline rename editor (focusout, Enter, Escape, and the
click it swallows), and the pencil / plus / share / details / terminate icons — each
asserting the row's own click handler did *not* also fire — plus the create-unit row
- metrics popover: the CPU and RAM rows with their value, limit and percentage, and each
optional row (GPU, JVM memory, shared memory) on **both** sides of its guard
- the python-environment modal closing from its footer button and from `nzOnCancel`
Template statement coverage goes from 71.35 % to 96.56 % (57 -> 7 uncovered lines),
measured locally. The 7 that remain are inside the PVE modal body, outside this issue.
A comment in the spec said the dropdown's overlay "does not attach under jsdom", and this
turned out not to be the reason those lines were uncovered — the overlay does attach. The
real obstacle is that ng-zorro gates it behind an `auditTime(150)` scheduled outside the
Angular zone, which `fakeAsync`'s `tick()`/`flush()` cannot reach, `whenStable()` waits on
forever (the component polls), and Vitest's fake timers cannot intercept because zone.js
captured the native timer first. The helper therefore polls for the rendered rows rather
than sleeping a fixed amount, so a slow runner costs extra iterations instead of a
failure. The stale comment is replaced with this explanation.
### Any related issues, documentation, discussions?
Closes #8099
### How was this PR tested?
`ng test --watch=false --include src/app/workspace/component/power-button/computing-unit-selection.component.spec.ts`
-> 126 passed, run five times with identical results (five rather than three because of
the polling helper). Five of the new assertions were verified to fail (non-zero exit) when
deliberately broken. `prettier --check` and `eslint` are clean on the touched file.
### Was this PR authored or co-authored using generative AI tooling?
Generated-by: Claude Code (Opus 5)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] test(frontend): render the computing-unit rows and the metrics popover [texera]
Posted by "mengw15 (via GitHub)" <gi...@apache.org>.
mengw15 commented on code in PR #8102:
URL: https://github.com/apache/texera/pull/8102#discussion_r3886276725
##########
frontend/src/app/workspace/component/power-button/computing-unit-selection.component.spec.ts:
##########
@@ -1586,4 +1588,298 @@ describe("PowerButtonComponent", () => {
}
});
});
+
+ // ──────────────────────────────────────────────────────────────────────────
+ // Rows of the dropdown menu, driven through the markup ng-zorro stamps into
+ // the CDK overlay rather than by calling the handlers on the instance.
+ // ──────────────────────────────────────────────────────────────────────────
+ describe("dropdown menu rows (rendered)", () => {
+ /**
+ * ng-zorro gates the dropdown's overlay behind an `auditTime(150)` that it
+ * schedules outside the Angular zone, so neither `fakeAsync`'s `tick()` nor
+ * Vitest's fake timers reach it — zone.js captured the native timer before
+ * either could patch it. Poll for the rows instead of sleeping a fixed
+ * amount, so a slow runner costs extra iterations rather than a failure.
+ */
+ async function openDropdown(): Promise<HTMLElement[]> {
+ fixture.debugElement.query(By.css(".computing-units-dropdown-button")).nativeElement.click();
+ for (let i = 0; i < 80 && document.querySelectorAll(".computing-unit-option").length === 0; i++) {
+ await new Promise(resolve => setTimeout(resolve, 25));
+ fixture.detectChanges();
+ }
+ fixture.detectChanges();
+ const rows = Array.from(document.querySelectorAll<HTMLElement>(".computing-unit-option"));
+ expect(rows.length).toBeGreaterThan(0);
+ return rows;
+ }
+
+ function click(element: Element | null | undefined): void {
+ expect(element).toBeTruthy();
+ element!.dispatchEvent(new MouseEvent("click", { bubbles: true }));
+ fixture.detectChanges();
+ }
+
+ let selectSpy: ReturnType<typeof vi.spyOn>;
+
+ beforeEach(() => {
+ component.workflowId = 5;
+ component.allComputingUnits = [
+ makeComputingUnit({ cuid: 1, name: "Alpha" }),
+ makeComputingUnit({ cuid: 2, name: "Beta" }),
+ ];
+ selectSpy = vi
+ .spyOn(TestBed.inject(ComputingUnitStatusService), "selectComputingUnit")
+ .mockImplementation(() => {});
+ fixture.detectChanges();
+ });
+
+ afterEach(() => {
+ // Clear the overlay contents rather than the container itself, which CDK caches.
+ document.querySelectorAll(".cdk-overlay-container").forEach(el => (el.innerHTML = ""));
+ vi.restoreAllMocks();
+ });
+
+ it("selects the unit whose row is clicked", async () => {
+ const rows = await openDropdown();
+
+ click(rows[1]);
+
+ expect(component.selectedComputingUnit?.computingUnit.cuid).toBe(2);
+ expect(selectSpy).toHaveBeenCalledWith(5, 2);
+ });
+
+ it("commits a rename when the inline editor loses focus", async () => {
+ const renameSpy = vi
+ .spyOn(TestBed.inject(WorkflowComputingUnitManagingService), "renameComputingUnit")
+ .mockReturnValue(of({} as any));
+ component.editingNameOfUnit = 1;
+ component.editingUnitName = "Alpha";
+ const rows = await openDropdown();
+
+ const editor = rows[0].querySelector<HTMLInputElement>(".unit-name-edit-input");
+ expect(editor?.value).toBe("Alpha");
+ editor!.value = "Renamed";
+ editor!.dispatchEvent(new FocusEvent("focusout", { bubbles: true }));
+ fixture.detectChanges();
+
+ expect(renameSpy).toHaveBeenCalledWith(1, "Renamed");
+ });
+
+ it("commits a rename when Enter is pressed in the inline editor", async () => {
+ const renameSpy = vi
+ .spyOn(TestBed.inject(WorkflowComputingUnitManagingService), "renameComputingUnit")
+ .mockReturnValue(of({} as any));
+ component.editingNameOfUnit = 1;
+ component.editingUnitName = "Alpha";
+ const rows = await openDropdown();
+
+ const editor = rows[0].querySelector<HTMLInputElement>(".unit-name-edit-input");
+ editor!.value = "Entered";
+ editor!.dispatchEvent(new KeyboardEvent("keyup", { key: "Enter", bubbles: true }));
+ fixture.detectChanges();
+
+ expect(renameSpy).toHaveBeenCalledWith(1, "Entered");
+ });
+
+ it("abandons the rename when Escape is pressed in the inline editor", async () => {
+ const renameSpy = vi.spyOn(TestBed.inject(WorkflowComputingUnitManagingService), "renameComputingUnit");
+ component.editingNameOfUnit = 1;
+ component.editingUnitName = "Alpha";
+ const rows = await openDropdown();
+
+ rows[0]
+ .querySelector<HTMLInputElement>(".unit-name-edit-input")!
+ .dispatchEvent(new KeyboardEvent("keyup", { key: "Escape", bubbles: true }));
+ fixture.detectChanges();
+
+ expect(component.editingNameOfUnit).toBeNull();
+ expect(renameSpy).not.toHaveBeenCalled();
+ });
+
+ it("swallows a click inside the inline editor instead of selecting the row", async () => {
+ component.editingNameOfUnit = 1;
+ component.editingUnitName = "Alpha";
+ const rows = await openDropdown();
+
+ click(rows[0].querySelector(".unit-name-edit-input"));
+
+ expect(selectSpy).not.toHaveBeenCalled();
+ expect(component.editingNameOfUnit).toBe(1);
+ });
+ it("opens the inline editor from the pencil without selecting the row", async () => {
+ const rows = await openDropdown();
+
+ click(rows[0].querySelector(".anticon-edit"));
+
+ expect(component.editingNameOfUnit).toBe(1);
+ expect(component.editingUnitName).toBe("Alpha");
+ expect(selectSpy).not.toHaveBeenCalled();
+ });
+
+ it("opens the python-environment modal from the plus icon without selecting the row", async () => {
+ const rows = await openDropdown();
+
+ click(rows[1].querySelector(".anticon-plus"));
+
+ expect(component.pveModalVisible).toBe(true);
+ expect(component.selectedComputingUnit?.computingUnit.cuid).toBe(2);
+ expect(selectSpy).not.toHaveBeenCalled();
+ });
+
+ it("opens share access from the share icon without selecting the row", async () => {
+ TestBed.inject(GuiConfigService).env.sharingComputingUnitEnabled = true;
+ const shareSpy = vi
+ .spyOn(TestBed.inject(ComputingUnitActionsService), "openShareAccessModal")
+ .mockImplementation(() => {});
+ fixture.detectChanges();
+ const rows = await openDropdown();
+
+ click(rows[0].querySelector(".anticon-share-alt"));
+
+ expect(shareSpy).toHaveBeenCalledWith(1, true);
+ expect(selectSpy).not.toHaveBeenCalled();
+ });
Review Comment:
Restored in the block's afterEach. Worth noting the leak is not reachable today: this spec re-runs TestBed.configureTestingModule in beforeEach and MockGuiConfigService keeps its config in an instance field, so each test gets its own. Restoring anyway so the block stays correct if these tests ever come to share one config instance.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] test(frontend): render the computing-unit rows and the metrics popover [texera]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #8102:
URL: https://github.com/apache/texera/pull/8102#issuecomment-5461720749
<!-- texera-reviewer-suggestion -->
### Automated Reviewer Suggestions
Based on the `git blame` history of the changed files, we recommend the following reviewers:
- **Contributors with relevant context:** `@Neilk1021`
You can notify them by mentioning `@Neilk1021` in a comment.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] test(frontend): render the computing-unit rows and the metrics popover [texera]
Posted by "Copilot (via GitHub)" <gi...@apache.org>.
Copilot commented on code in PR #8102:
URL: https://github.com/apache/texera/pull/8102#discussion_r3886269594
##########
frontend/src/app/workspace/component/power-button/computing-unit-selection.component.spec.ts:
##########
@@ -1586,4 +1588,298 @@ describe("PowerButtonComponent", () => {
}
});
});
+
+ // ──────────────────────────────────────────────────────────────────────────
+ // Rows of the dropdown menu, driven through the markup ng-zorro stamps into
+ // the CDK overlay rather than by calling the handlers on the instance.
+ // ──────────────────────────────────────────────────────────────────────────
+ describe("dropdown menu rows (rendered)", () => {
+ /**
+ * ng-zorro gates the dropdown's overlay behind an `auditTime(150)` that it
+ * schedules outside the Angular zone, so neither `fakeAsync`'s `tick()` nor
+ * Vitest's fake timers reach it — zone.js captured the native timer before
+ * either could patch it. Poll for the rows instead of sleeping a fixed
+ * amount, so a slow runner costs extra iterations rather than a failure.
+ */
+ async function openDropdown(): Promise<HTMLElement[]> {
+ fixture.debugElement.query(By.css(".computing-units-dropdown-button")).nativeElement.click();
+ for (let i = 0; i < 80 && document.querySelectorAll(".computing-unit-option").length === 0; i++) {
+ await new Promise(resolve => setTimeout(resolve, 25));
+ fixture.detectChanges();
+ }
+ fixture.detectChanges();
+ const rows = Array.from(document.querySelectorAll<HTMLElement>(".computing-unit-option"));
+ expect(rows.length).toBeGreaterThan(0);
+ return rows;
+ }
+
+ function click(element: Element | null | undefined): void {
+ expect(element).toBeTruthy();
+ element!.dispatchEvent(new MouseEvent("click", { bubbles: true }));
+ fixture.detectChanges();
+ }
+
+ let selectSpy: ReturnType<typeof vi.spyOn>;
+
+ beforeEach(() => {
+ component.workflowId = 5;
+ component.allComputingUnits = [
+ makeComputingUnit({ cuid: 1, name: "Alpha" }),
+ makeComputingUnit({ cuid: 2, name: "Beta" }),
+ ];
+ selectSpy = vi
+ .spyOn(TestBed.inject(ComputingUnitStatusService), "selectComputingUnit")
+ .mockImplementation(() => {});
+ fixture.detectChanges();
+ });
+
+ afterEach(() => {
+ // Clear the overlay contents rather than the container itself, which CDK caches.
+ document.querySelectorAll(".cdk-overlay-container").forEach(el => (el.innerHTML = ""));
+ vi.restoreAllMocks();
+ });
+
+ it("selects the unit whose row is clicked", async () => {
+ const rows = await openDropdown();
+
+ click(rows[1]);
+
+ expect(component.selectedComputingUnit?.computingUnit.cuid).toBe(2);
+ expect(selectSpy).toHaveBeenCalledWith(5, 2);
+ });
+
+ it("commits a rename when the inline editor loses focus", async () => {
+ const renameSpy = vi
+ .spyOn(TestBed.inject(WorkflowComputingUnitManagingService), "renameComputingUnit")
+ .mockReturnValue(of({} as any));
+ component.editingNameOfUnit = 1;
+ component.editingUnitName = "Alpha";
+ const rows = await openDropdown();
+
+ const editor = rows[0].querySelector<HTMLInputElement>(".unit-name-edit-input");
+ expect(editor?.value).toBe("Alpha");
+ editor!.value = "Renamed";
+ editor!.dispatchEvent(new FocusEvent("focusout", { bubbles: true }));
+ fixture.detectChanges();
+
+ expect(renameSpy).toHaveBeenCalledWith(1, "Renamed");
+ });
+
+ it("commits a rename when Enter is pressed in the inline editor", async () => {
+ const renameSpy = vi
+ .spyOn(TestBed.inject(WorkflowComputingUnitManagingService), "renameComputingUnit")
+ .mockReturnValue(of({} as any));
+ component.editingNameOfUnit = 1;
+ component.editingUnitName = "Alpha";
+ const rows = await openDropdown();
+
+ const editor = rows[0].querySelector<HTMLInputElement>(".unit-name-edit-input");
+ editor!.value = "Entered";
+ editor!.dispatchEvent(new KeyboardEvent("keyup", { key: "Enter", bubbles: true }));
+ fixture.detectChanges();
+
+ expect(renameSpy).toHaveBeenCalledWith(1, "Entered");
+ });
+
+ it("abandons the rename when Escape is pressed in the inline editor", async () => {
+ const renameSpy = vi.spyOn(TestBed.inject(WorkflowComputingUnitManagingService), "renameComputingUnit");
+ component.editingNameOfUnit = 1;
+ component.editingUnitName = "Alpha";
+ const rows = await openDropdown();
+
+ rows[0]
+ .querySelector<HTMLInputElement>(".unit-name-edit-input")!
+ .dispatchEvent(new KeyboardEvent("keyup", { key: "Escape", bubbles: true }));
+ fixture.detectChanges();
+
+ expect(component.editingNameOfUnit).toBeNull();
+ expect(renameSpy).not.toHaveBeenCalled();
+ });
+
+ it("swallows a click inside the inline editor instead of selecting the row", async () => {
+ component.editingNameOfUnit = 1;
+ component.editingUnitName = "Alpha";
+ const rows = await openDropdown();
+
+ click(rows[0].querySelector(".unit-name-edit-input"));
+
+ expect(selectSpy).not.toHaveBeenCalled();
+ expect(component.editingNameOfUnit).toBe(1);
+ });
+ it("opens the inline editor from the pencil without selecting the row", async () => {
+ const rows = await openDropdown();
+
+ click(rows[0].querySelector(".anticon-edit"));
+
+ expect(component.editingNameOfUnit).toBe(1);
+ expect(component.editingUnitName).toBe("Alpha");
+ expect(selectSpy).not.toHaveBeenCalled();
+ });
+
+ it("opens the python-environment modal from the plus icon without selecting the row", async () => {
+ const rows = await openDropdown();
+
+ click(rows[1].querySelector(".anticon-plus"));
+
+ expect(component.pveModalVisible).toBe(true);
+ expect(component.selectedComputingUnit?.computingUnit.cuid).toBe(2);
+ expect(selectSpy).not.toHaveBeenCalled();
+ });
+
+ it("opens share access from the share icon without selecting the row", async () => {
+ TestBed.inject(GuiConfigService).env.sharingComputingUnitEnabled = true;
+ const shareSpy = vi
+ .spyOn(TestBed.inject(ComputingUnitActionsService), "openShareAccessModal")
+ .mockImplementation(() => {});
+ fixture.detectChanges();
+ const rows = await openDropdown();
+
+ click(rows[0].querySelector(".anticon-share-alt"));
+
+ expect(shareSpy).toHaveBeenCalledWith(1, true);
+ expect(selectSpy).not.toHaveBeenCalled();
+ });
Review Comment:
This test mutates GuiConfigService.env.sharingComputingUnitEnabled but never restores it, which can make later tests order-dependent (and flaky) if they assume the default config value. Please restore the previous value within the test (or reset it in afterEach).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] test(frontend): render the computing-unit rows and the metrics popover [texera]
Posted by "aglinxinyuan (via GitHub)" <gi...@apache.org>.
aglinxinyuan merged PR #8102:
URL: https://github.com/apache/texera/pull/8102
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] test(frontend): render the computing-unit rows and the metrics popover [texera]
Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #8102:
URL: https://github.com/apache/texera/pull/8102#issuecomment-5461745997
## [Codecov](https://app.codecov.io/gh/apache/texera/pull/8102?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 93.79%. Comparing base ([`04b213d`](https://app.codecov.io/gh/apache/texera/commit/04b213d9aa0d7310cfecefaab50cc4f9323e3e58?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`62838ac`](https://app.codecov.io/gh/apache/texera/commit/62838ac8be7fb9309a7301a3feed76aee485bbd9?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
<details><summary>Additional details and impacted files</summary>
```diff
@@ Coverage Diff @@
## main #8102 +/- ##
============================================
+ Coverage 93.70% 93.79% +0.08%
Complexity 4741 4741
============================================
Files 1181 1181
Lines 47874 47874
Branches 5323 5323
============================================
+ Hits 44861 44904 +43
+ Misses 1578 1536 -42
+ Partials 1435 1434 -1
```
| [Flag](https://app.codecov.io/gh/apache/texera/pull/8102/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | | *Carryforward flag |
|---|---|---|---|
| [access-control-service](https://app.codecov.io/gh/apache/texera/pull/8102/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `81.00% <ø> (ø)` | | Carriedforward from [04b213d](https://app.codecov.io/gh/apache/texera/commit/04b213d9aa0d7310cfecefaab50cc4f9323e3e58?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [agent-service](https://app.codecov.io/gh/apache/texera/pull/8102/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `99.32% <ø> (ø)` | | Carriedforward from [04b213d](https://app.codecov.io/gh/apache/texera/commit/04b213d9aa0d7310cfecefaab50cc4f9323e3e58?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [amber](https://app.codecov.io/gh/apache/texera/pull/8102/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `89.71% <ø> (ø)` | | Carriedforward from [04b213d](https://app.codecov.io/gh/apache/texera/commit/04b213d9aa0d7310cfecefaab50cc4f9323e3e58?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [computing-unit-managing-service](https://app.codecov.io/gh/apache/texera/pull/8102/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `73.67% <ø> (ø)` | | Carriedforward from [04b213d](https://app.codecov.io/gh/apache/texera/commit/04b213d9aa0d7310cfecefaab50cc4f9323e3e58?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [config-service](https://app.codecov.io/gh/apache/texera/pull/8102/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `86.86% <ø> (ø)` | | Carriedforward from [04b213d](https://app.codecov.io/gh/apache/texera/commit/04b213d9aa0d7310cfecefaab50cc4f9323e3e58?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [file-service](https://app.codecov.io/gh/apache/texera/pull/8102/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `87.91% <ø> (ø)` | | Carriedforward from [04b213d](https://app.codecov.io/gh/apache/texera/commit/04b213d9aa0d7310cfecefaab50cc4f9323e3e58?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [frontend](https://app.codecov.io/gh/apache/texera/pull/8102/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `96.39% <ø> (+0.20%)` | :arrow_up: | |
| [notebook-migration-service](https://app.codecov.io/gh/apache/texera/pull/8102/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `79.31% <ø> (ø)` | | Carriedforward from [04b213d](https://app.codecov.io/gh/apache/texera/commit/04b213d9aa0d7310cfecefaab50cc4f9323e3e58?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [pyamber](https://app.codecov.io/gh/apache/texera/pull/8102/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `98.87% <ø> (ø)` | | Carriedforward from [04b213d](https://app.codecov.io/gh/apache/texera/commit/04b213d9aa0d7310cfecefaab50cc4f9323e3e58?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [workflow-compiling-service](https://app.codecov.io/gh/apache/texera/pull/8102/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `77.19% <ø> (ø)` | | Carriedforward from [04b213d](https://app.codecov.io/gh/apache/texera/commit/04b213d9aa0d7310cfecefaab50cc4f9323e3e58?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
*This pull request uses carry forward flags. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) to find out more.
</details>
[:umbrella: View full report in Codecov by Harness](https://app.codecov.io/gh/apache/texera/pull/8102?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
<details><summary> :rocket: New features to boost your workflow: </summary>
- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org