Use toBe for strings and integers

Use toBeTrue / toBeFalse for booleans

Use toEqual for deep equality checks (e.g. arrays and objects) and not for cases where `===` is enough.

Bug: 311642700
Test: npm run test:unit:ci
Flag: EXEMPT EXEMPT
Change-Id: I5684f45e97ecc4684fe80c06f18661d7ff71e38a
diff --git a/tools/winscope/src/app/components/app_component_test.ts b/tools/winscope/src/app/components/app_component_test.ts
index 443216a..565dac3 100644
--- a/tools/winscope/src/app/components/app_component_test.ts
+++ b/tools/winscope/src/app/components/app_component_test.ts
@@ -162,7 +162,7 @@
   });
 
   it('has the expected title', () => {
-    expect(component.title).toEqual('winscope');
+    expect(component.title).toBe('winscope');
   });
 
   it('shows permanent header items on homepage', () => {
@@ -454,7 +454,7 @@
 
     const mediatorSpy = spyOn(component.mediator, 'onWinscopeEvent');
     const actions = dialog.findAll('.warning-action-buttons button');
-    expect(actions.length).toEqual(1);
+    expect(actions.length).toBe(1);
     actions[0].click();
     await dom.whenStable();
     expect(eventHandled).toBeTrue();
diff --git a/tools/winscope/src/app/components/snack_bar_component_test.ts b/tools/winscope/src/app/components/snack_bar_component_test.ts
index 1266160..8d27c09 100644
--- a/tools/winscope/src/app/components/snack_bar_component_test.ts
+++ b/tools/winscope/src/app/components/snack_bar_component_test.ts
@@ -53,7 +53,7 @@
 
   it('shows all messages', () => {
     const messageElements = dom.findAll('.message');
-    expect(messageElements.length).toEqual(2);
+    expect(messageElements.length).toBe(2);
     messageElements[0].checkTextExact(messages[0]);
     messageElements[1].checkTextExact(messages[1]);
   });
diff --git a/tools/winscope/src/app/components/timeline/expanded-timeline/expanded_timeline_component_test.ts b/tools/winscope/src/app/components/timeline/expanded-timeline/expanded_timeline_component_test.ts
index f4ea0ca..d33f001 100644
--- a/tools/winscope/src/app/components/timeline/expanded-timeline/expanded_timeline_component_test.ts
+++ b/tools/winscope/src/app/components/timeline/expanded-timeline/expanded_timeline_component_test.ts
@@ -122,17 +122,17 @@
     dom.detectChanges();
 
     const timelineElements = dom.findAll('.timeline.row single-timeline');
-    expect(timelineElements.length).toEqual(4);
+    expect(timelineElements.length).toBe(4);
 
     const transitionElement = dom.findAll('.timeline.row transition-timeline');
-    expect(transitionElement.length).toEqual(1);
+    expect(transitionElement.length).toBe(1);
   });
 
   it('passes initial selectedEntry of correct type into each timeline', () => {
     dom.detectChanges();
 
     const singleTimelines = assertDefined(component.singleTimelines);
-    expect(singleTimelines.length).toEqual(4);
+    expect(singleTimelines.length).toBe(4);
 
     // initially only first entry of SF is set
     singleTimelines.forEach((timeline) => {
@@ -158,7 +158,7 @@
     dom.detectChanges();
 
     const singleTimelines = assertDefined(component.singleTimelines);
-    expect(singleTimelines.length).toEqual(4);
+    expect(singleTimelines.length).toBe(4);
 
     singleTimelines.forEach((timeline) => {
       // protolog and transactions traces have no timestamps before current position
diff --git a/tools/winscope/src/app/components/timeline/mini-timeline/mini_timeline_component_test.ts b/tools/winscope/src/app/components/timeline/mini-timeline/mini_timeline_component_test.ts
index 4c7b00e..8889892 100644
--- a/tools/winscope/src/app/components/timeline/mini-timeline/mini_timeline_component_test.ts
+++ b/tools/winscope/src/app/components/timeline/mini-timeline/mini_timeline_component_test.ts
@@ -171,7 +171,7 @@
       'visible',
     );
     const zoomButton = dom.get(resetButtonSelector).getHTMLElement();
-    expect(window.getComputedStyle(zoomButton).visibility).toEqual('visible');
+    expect(window.getComputedStyle(zoomButton).visibility).toBe('visible');
   });
 
   it('shows zoom controls when zoomed in', () => {
@@ -184,7 +184,7 @@
       'visible',
     );
     const zoomButton = dom.get(resetButtonSelector).getHTMLElement();
-    expect(window.getComputedStyle(zoomButton).visibility).toEqual('visible');
+    expect(window.getComputedStyle(zoomButton).visibility).toBe('visible');
   });
 
   it('loads with initial zoom', () => {
@@ -246,7 +246,7 @@
 
     const slider = dom.get('.slider .handle');
     const sliderEl = slider.getHTMLElement();
-    expect(window.getComputedStyle(sliderEl).visibility).toEqual('visible');
+    expect(window.getComputedStyle(sliderEl).visibility).toBe('visible');
 
     slider.dragElement(100, 8);
     const finalZoom = timelineData.getZoomRange();
@@ -344,7 +344,7 @@
 
     openContextMenu(assertDefined(component.miniTimelineComponent));
     const options = getContextMenuItems();
-    expect(options.length).toEqual(2);
+    expect(options.length).toBe(2);
   });
 
   it('adds bookmark', () => {
diff --git a/tools/winscope/src/app/components/timeline/mini-timeline/slider_component_test.ts b/tools/winscope/src/app/components/timeline/mini-timeline/slider_component_test.ts
index 9db32b1..f0ce8cf 100644
--- a/tools/winscope/src/app/components/timeline/mini-timeline/slider_component_test.ts
+++ b/tools/winscope/src/app/components/timeline/mini-timeline/slider_component_test.ts
@@ -133,7 +133,7 @@
 
     const box = assertDefined(component.sliderBox);
     spyOnProperty(box.nativeElement, 'offsetWidth', 'get').and.returnValue(100);
-    expect(box.nativeElement.offsetWidth).toEqual(100);
+    expect(box.nativeElement.offsetWidth).toBe(100);
 
     slider.style.width = '587px';
     window.dispatchEvent(new Event('resize'));
@@ -353,6 +353,6 @@
   });
 
   function checkVisible(element: HTMLElement) {
-    expect(window.getComputedStyle(element).visibility).toEqual('visible');
+    expect(window.getComputedStyle(element).visibility).toBe('visible');
   }
 });
diff --git a/tools/winscope/src/app/components/timeline/timeline_component_test.ts b/tools/winscope/src/app/components/timeline/timeline_component_test.ts
index ce4c44c..7d9a978 100644
--- a/tools/winscope/src/app/components/timeline/timeline_component_test.ts
+++ b/tools/winscope/src/app/components/timeline/timeline_component_test.ts
@@ -343,9 +343,9 @@
     matOptions[0].checkText('Search test query');
     const sfOption = matOptions[2];
     sfOption.checkText('Surface Flinger');
-    expect(sfOption.getHTMLElement().ariaDisabled).toEqual('true');
+    expect(sfOption.getHTMLElement().ariaDisabled).toBe('true');
     for (const i of [1, 3, 4]) {
-      expect(matOptions[1].getHTMLElement().ariaDisabled).toEqual('false');
+      expect(matOptions[1].getHTMLElement().ariaDisabled).toBe('false');
     }
 
     matOptions[3].click();
@@ -389,10 +389,10 @@
     const matOptions = dom.getMatSelectPanel().findAll('.mat-mdc-option'); // [WM, SF, SR, ProtoLog, VC]
 
     for (const i of [0, 2, 4]) {
-      expect(matOptions[i].getHTMLElement().ariaDisabled).toEqual('false');
+      expect(matOptions[i].getHTMLElement().ariaDisabled).toBe('false');
     }
     for (const i of [1, 3]) {
-      expect(matOptions[i].getHTMLElement().ariaDisabled).toEqual('true');
+      expect(matOptions[i].getHTMLElement().ariaDisabled).toBe('true');
     }
     matOptions[3].checkText('ProtoLog Dump');
     matOptions[4].checkText('View Capture Test Window');
@@ -462,7 +462,7 @@
       assertDefined(component.timelineData)
         .getCurrentPosition()
         ?.timestamp.getValueNs(),
-    ).toEqual(100n);
+    ).toBe(100n);
     const nextEntryButton = dom.get(nextEntrySelector);
 
     testCurrentTimestampOnButtonClick(nextEntryButton, position105, 110n);
@@ -485,7 +485,7 @@
       assertDefined(component.timelineData)
         .getCurrentPosition()
         ?.timestamp.getValueNs(),
-    ).toEqual(100n);
+    ).toBe(100n);
     const prevEntryButton = dom.get(prevEntrySelector);
 
     // In this state we are already on the first entry at timestamp 100, so
@@ -537,7 +537,7 @@
       assertDefined(component.timelineData)
         .getCurrentPosition()
         ?.timestamp.getValueNs(),
-    ).toEqual(100n);
+    ).toBe(100n);
 
     const timeInputField = dom.get('.time-input.nano');
 
@@ -581,7 +581,7 @@
       assertDefined(component.timelineData)
         .getCurrentPosition()
         ?.timestamp.getValueNs(),
-    ).toEqual(100n);
+    ).toBe(100n);
 
     const timeInputField = dom.get('.time-input.human');
 
@@ -630,7 +630,7 @@
       assertDefined(component.timelineData)
         .getCurrentPosition()
         ?.timestamp.valueOf(),
-    ).toEqual(100n);
+    ).toBe(100n);
 
     const timeInputField = dom.get('.time-input.human');
 
@@ -649,7 +649,7 @@
       assertDefined(component.timelineData)
         .getCurrentPosition()
         ?.timestamp.valueOf(),
-    ).toEqual(100n);
+    ).toBe(100n);
 
     const timeInputField = dom.get('.time-input.human');
 
@@ -944,34 +944,34 @@
     loadTracesWithLargeTimeRange();
 
     const timelineComponent = assertDefined(component.timeline);
-    expect(timelineComponent.bookmarks.length).toEqual(0);
+    expect(timelineComponent.bookmarks.length).toBe(0);
 
     openContextMenu();
     clickToggleBookmarkOption();
-    expect(timelineComponent.bookmarks.length).toEqual(1);
+    expect(timelineComponent.bookmarks.length).toBe(1);
 
     // click within marker y-pos, x-pos close enough to remove bookmark
     openContextMenu(5);
     clickToggleBookmarkOption();
-    expect(timelineComponent.bookmarks.length).toEqual(0);
+    expect(timelineComponent.bookmarks.length).toBe(0);
 
     openContextMenu();
     clickToggleBookmarkOption();
-    expect(timelineComponent.bookmarks.length).toEqual(1);
+    expect(timelineComponent.bookmarks.length).toBe(1);
 
     // click within marker y-pos, x-pos too large so new bookmark added
     openContextMenu(20);
     clickToggleBookmarkOption();
-    expect(timelineComponent.bookmarks.length).toEqual(2);
+    expect(timelineComponent.bookmarks.length).toBe(2);
 
     openContextMenu(20);
     clickToggleBookmarkOption();
-    expect(timelineComponent.bookmarks.length).toEqual(1);
+    expect(timelineComponent.bookmarks.length).toBe(1);
 
     // click below marker y-pos, x-pos now too large so new bookmark added
     openContextMenu(5, true);
     clickToggleBookmarkOption();
-    expect(timelineComponent.bookmarks.length).toEqual(2);
+    expect(timelineComponent.bookmarks.length).toBe(2);
   });
 
   it('removes all bookmarks', () => {
diff --git a/tools/winscope/src/app/components/timeline/timeline_utils_test.ts b/tools/winscope/src/app/components/timeline/timeline_utils_test.ts
index 20bc390..ae4af44 100644
--- a/tools/winscope/src/app/components/timeline/timeline_utils_test.ts
+++ b/tools/winscope/src/app/components/timeline/timeline_utils_test.ts
@@ -208,7 +208,7 @@
     });
 
     it('robust to invalid hex string', () => {
-      expect(convertHexToRgb('#1')).toEqual(undefined);
+      expect(convertHexToRgb('#1')).toBeUndefined();
     });
   });
 
diff --git a/tools/winscope/src/app/components/trace_config_component_test.ts b/tools/winscope/src/app/components/trace_config_component_test.ts
index 78b23bb..c714b7b 100644
--- a/tools/winscope/src/app/components/trace_config_component_test.ts
+++ b/tools/winscope/src/app/components/trace_config_component_test.ts
@@ -321,7 +321,7 @@
   it('shows config desc', () => {
     const panel = getAdvancedSettingsPanelForKey(layersTraceKey);
     const configDesc = panel.get('.config-desc');
-    expect(configDesc.getText()).toEqual('Layers trace config description');
+    expect(configDesc.getText()).toBe('Layers trace config description');
   });
 
   it('applies chip configuration changes', async () => {
@@ -361,7 +361,7 @@
 
     const hiddenCss = 'hidden-option';
     const allOptions = dom.getMatSelectPanel().findAll('.option');
-    expect(allOptions.length).toEqual(3);
+    expect(allOptions.length).toBe(3);
     allOptions.forEach((opt) => opt.checkClassName(hiddenCss, false));
 
     const panel = dom.getMatSelectPanel();
diff --git a/tools/winscope/src/app/components/trace_view_component_test.ts b/tools/winscope/src/app/components/trace_view_component_test.ts
index 6e2c6c0..b5acf2c 100644
--- a/tools/winscope/src/app/components/trace_view_component_test.ts
+++ b/tools/winscope/src/app/components/trace_view_component_test.ts
@@ -102,7 +102,7 @@
 
   it('creates viewer tabs', () => {
     const tabs = getTabs();
-    expect(tabs.length).toEqual(3);
+    expect(tabs.length).toBe(3);
     tabs[0].checkText('Title0');
     tabs[1].checkText('Title1 Dump');
   });
@@ -129,21 +129,21 @@
     // Initially tab 0
     dom.detectChanges();
     let visibleTabContents = getVisibleTabContents();
-    expect(visibleTabContents.length).toEqual(1);
-    expect(visibleTabContents[0].innerHTML).toEqual('Content0');
+    expect(visibleTabContents.length).toBe(1);
+    expect(visibleTabContents[0].innerHTML).toBe('Content0');
 
     // Switch to tab 1
     tabs[1].click();
     visibleTabContents = getVisibleTabContents();
-    expect(visibleTabContents.length).toEqual(1);
-    expect(visibleTabContents[0].innerHTML).toEqual('Content1');
+    expect(visibleTabContents.length).toBe(1);
+    expect(visibleTabContents[0].innerHTML).toBe('Content1');
 
     // Switch to tab 0
     tabs[1].click();
     tabs[0].click();
     visibleTabContents = getVisibleTabContents();
-    expect(visibleTabContents.length).toEqual(1);
-    expect(visibleTabContents[0].innerHTML).toEqual('Content0');
+    expect(visibleTabContents.length).toBe(1);
+    expect(visibleTabContents[0].innerHTML).toBe('Content0');
   });
 
   it("emits 'view switched' events", () => {
@@ -176,8 +176,8 @@
 
     // Initially tab 0
     let visibleTabContents = getVisibleTabContents();
-    expect(visibleTabContents.length).toEqual(1);
-    expect(visibleTabContents[0].innerHTML).toEqual('Content0');
+    expect(visibleTabContents.length).toBe(1);
+    expect(visibleTabContents[0].innerHTML).toBe('Content0');
 
     // Switch to tab 1
     await traceViewComponent.onWinscopeEvent(
@@ -185,8 +185,8 @@
     );
     dom.detectChanges();
     visibleTabContents = getVisibleTabContents();
-    expect(visibleTabContents.length).toEqual(1);
-    expect(visibleTabContents[0].innerHTML).toEqual('Content1');
+    expect(visibleTabContents.length).toBe(1);
+    expect(visibleTabContents[0].innerHTML).toBe('Content1');
 
     // Switch to tab 0
     await traceViewComponent.onWinscopeEvent(
@@ -194,8 +194,8 @@
     );
     dom.detectChanges();
     visibleTabContents = getVisibleTabContents();
-    expect(visibleTabContents.length).toEqual(1);
-    expect(visibleTabContents[0].innerHTML).toEqual('Content0');
+    expect(visibleTabContents.length).toBe(1);
+    expect(visibleTabContents[0].innerHTML).toBe('Content0');
   });
 
   it('emits TabbedViewSwitched event on viewer changes', () => {
@@ -332,8 +332,8 @@
     ];
     dom.detectChanges();
     const visibleTabContents = getVisibleTabContents();
-    expect(visibleTabContents.length).toEqual(1);
-    expect(visibleTabContents[0].innerHTML).toEqual('Content1');
+    expect(visibleTabContents.length).toBe(1);
+    expect(visibleTabContents[0].innerHTML).toBe('Content1');
   });
 
   it('shows tooltips for tabs with trace descriptors', async () => {
diff --git a/tools/winscope/src/app/components/upload_traces_component_test.ts b/tools/winscope/src/app/components/upload_traces_component_test.ts
index 338a522..cedadaa 100644
--- a/tools/winscope/src/app/components/upload_traces_component_test.ts
+++ b/tools/winscope/src/app/components/upload_traces_component_test.ts
@@ -147,17 +147,17 @@
     const progressBar = assertDefined(
       dom.findByDirective(LoadProgressComponent),
     );
-    expect(progressBar.progressPercentage).toEqual(10);
+    expect(progressBar.progressPercentage).toBe(10);
 
     component.onProgressUpdate(undefined, 20);
     dom.detectChanges();
-    expect(progressBar.progressPercentage).toEqual(10);
+    expect(progressBar.progressPercentage).toBe(10);
 
     const now = Date.now();
     spyOn(Date, 'now').and.returnValue(now + 500);
     component.onProgressUpdate(undefined, 20);
     dom.detectChanges();
-    expect(progressBar.progressPercentage).toEqual(20);
+    expect(progressBar.progressPercentage).toBe(20);
   });
 
   it('can display uploaded traces', async () => {
@@ -168,13 +168,13 @@
 
   it('can remove one of two uploaded traces', async () => {
     await loadFiles([validSfFile, validWmFile]);
-    expect(component.tracePipeline?.getTraces().getSize()).toEqual(2);
+    expect(component.tracePipeline?.getTraces().getSize()).toBe(2);
 
     const spy = spyOn(component, 'onOperationFinished');
     dom.findAndClick(removeTraceSelector);
     expect(dom.find('.uploaded-files')).toBeDefined();
     expect(spy).toHaveBeenCalled();
-    expect(component.tracePipeline?.getTraces().getSize()).toEqual(1);
+    expect(component.tracePipeline?.getTraces().getSize()).toBe(1);
   });
 
   it('handles removal of the only uploaded trace', async () => {
@@ -184,18 +184,18 @@
     dom.findAndClick(removeTraceSelector);
     expect(dom.find('.drop-info')).toBeDefined();
     expect(spy).toHaveBeenCalled();
-    expect(component.tracePipeline?.getTraces().getSize()).toEqual(0);
+    expect(component.tracePipeline?.getTraces().getSize()).toBe(0);
   });
 
   it('can remove all uploaded traces', async () => {
     await loadFiles([validSfFile, validWmFile]);
-    expect(component.tracePipeline?.getTraces().getSize()).toEqual(2);
+    expect(component.tracePipeline?.getTraces().getSize()).toBe(2);
 
     const spy = spyOn(component, 'onOperationFinished');
     dom.findAndClick(clearAllSelector);
     expect(dom.find('.drop-info')).toBeDefined();
     expect(spy).toHaveBeenCalled();
-    expect(component.tracePipeline?.getTraces().getSize()).toEqual(0);
+    expect(component.tracePipeline?.getTraces().getSize()).toBe(0);
   });
 
   it('can emit view traces event', async () => {
@@ -324,8 +324,8 @@
     const warningEvent2 = new ShowTraceUploadWarning(warningMessage2);
 
     // Initially, no banners should be visible
-    expect(component.warningMessages.length).toEqual(0);
-    expect(dom.findAll(warningBannerSelector).length).toEqual(0);
+    expect(component.warningMessages.length).toBe(0);
+    expect(dom.findAll(warningBannerSelector).length).toBe(0);
 
     // Simulate receiving the first event
     await component.onWinscopeEvent(warningEvent1);
@@ -334,7 +334,7 @@
     // Assert first banner visibility and message content
     expect(component.warningMessages).toEqual([warningMessage1]);
     let bannerElements = dom.findAll(warningBannerSelector);
-    expect(bannerElements.length).toEqual(1);
+    expect(bannerElements.length).toBe(1);
     bannerElements[0]
       .get(warningMessageSelector)
       .checkTextExact(warningMessage1);
@@ -349,7 +349,7 @@
       warningMessage2,
     ]);
     bannerElements = dom.findAll(warningBannerSelector);
-    expect(bannerElements.length).toEqual(2);
+    expect(bannerElements.length).toBe(2);
     bannerElements[0]
       .get(warningMessageSelector)
       .checkTextExact(warningMessage1);
@@ -364,7 +364,7 @@
       warningMessage1,
       warningMessage2,
     ]);
-    expect(dom.findAll(warningBannerSelector).length).toEqual(2);
+    expect(dom.findAll(warningBannerSelector).length).toBe(2);
   });
 
   it('clears specific warning banner when its close button is clicked', async () => {
@@ -378,7 +378,7 @@
     await component.onWinscopeEvent(warningEvent2);
     dom.detectChanges();
     let warningBanners = dom.findAll(warningBannerSelector);
-    expect(warningBanners.length).toEqual(2);
+    expect(warningBanners.length).toBe(2);
     warningBanners[0]
       .get(warningMessageSelector)
       .checkTextExact(warningMessage1);
@@ -394,7 +394,7 @@
 
     // Assert only the first banner is removed
     warningBanners = dom.findAll(warningBannerSelector);
-    expect(warningBanners.length).toEqual(1);
+    expect(warningBanners.length).toBe(1);
     warningBanners[0]
       .get(warningMessageSelector)
       .checkTextExact(warningMessage2);
@@ -411,15 +411,15 @@
     await component.onWinscopeEvent(warningEvent1);
     await component.onWinscopeEvent(warningEvent2);
     dom.detectChanges();
-    expect(component.warningMessages.length).toEqual(2);
-    expect(dom.findAll(warningBannerSelector).length).toEqual(2);
+    expect(component.warningMessages.length).toBe(2);
+    expect(dom.findAll(warningBannerSelector).length).toBe(2);
 
     // Click clear all
     dom.findAndClick(clearAllSelector);
 
     // Assert banners are hidden
-    expect(component.warningMessages.length).toEqual(0);
-    expect(dom.findAll(warningBannerSelector).length).toEqual(0);
+    expect(component.warningMessages.length).toBe(0);
+    expect(dom.findAll(warningBannerSelector).length).toBe(0);
   });
 
   it('warning banners are not cleared when new files are uploaded', async () => {
@@ -432,16 +432,16 @@
     await component.onWinscopeEvent(warningEvent1);
     await component.onWinscopeEvent(warningEvent2);
     dom.detectChanges();
-    expect(component.warningMessages.length).toEqual(2);
-    expect(dom.findAll(warningBannerSelector).length).toEqual(2);
+    expect(component.warningMessages.length).toBe(2);
+    expect(dom.findAll(warningBannerSelector).length).toBe(2);
 
     // Start a new progress update
     component.onProgressUpdate('Loading new files...', 0);
     dom.detectChanges();
 
     // Assert banners are hidden
-    expect(component.warningMessages.length).toEqual(2);
-    expect(dom.findAll(warningBannerSelector).length).toEqual(2);
+    expect(component.warningMessages.length).toBe(2);
+    expect(dom.findAll(warningBannerSelector).length).toBe(2);
   });
 
   async function loadFiles(files: File[]) {
diff --git a/tools/winscope/src/app/loaded_parsers_test.ts b/tools/winscope/src/app/loaded_parsers_test.ts
index b8925af..45f172f 100644
--- a/tools/winscope/src/app/loaded_parsers_test.ts
+++ b/tools/winscope/src/app/loaded_parsers_test.ts
@@ -142,7 +142,7 @@
 
   beforeEach(() => {
     loadedParsers = new LoadedParsers();
-    expect(loadedParsers.getParsers().length).toEqual(0);
+    expect(loadedParsers.getParsers().length).toBe(0);
     userNotifierChecker.reset();
   });
 
diff --git a/tools/winscope/src/app/trace_file_filter_test.ts b/tools/winscope/src/app/trace_file_filter_test.ts
index d3f8905..62f3e9f 100644
--- a/tools/winscope/src/app/trace_file_filter_test.ts
+++ b/tools/winscope/src/app/trace_file_filter_test.ts
@@ -319,7 +319,7 @@
         tryParsePerfetto,
       );
       expect(result.perfetto?.file).toEqual(perfettoSysTrace);
-      expect(result.criticalWarnings?.length).toEqual(0); // No warnings expected
+      expect(result.criticalWarnings?.length).toBe(0); // No warnings expected
       userNotifierChecker.expectNone();
     });
 
@@ -484,7 +484,7 @@
 
     expect(result.perfetto).toBeUndefined();
     expect(result.criticalWarnings).toBeDefined();
-    expect(result.criticalWarnings?.length).toEqual(1);
+    expect(result.criticalWarnings?.length).toBe(1);
     const warning = assertDefined(
       result.criticalWarnings,
     )[0] as MissingPersistentTrace;
diff --git a/tools/winscope/src/app/trace_pipeline_test.ts b/tools/winscope/src/app/trace_pipeline_test.ts
index 6c1942b..d7c67d5 100644
--- a/tools/winscope/src/app/trace_pipeline_test.ts
+++ b/tools/winscope/src/app/trace_pipeline_test.ts
@@ -124,7 +124,7 @@
   });
 
   it('can load valid trace files', async () => {
-    expect(tracePipeline.getTraces().getSize()).toEqual(0);
+    expect(tracePipeline.getTraces().getSize()).toBe(0);
 
     await loadFiles([validSfFile, validWmFile], FilesSource.TEST);
     await expectLoadResult(2, []);
@@ -132,7 +132,7 @@
     expect(tracePipeline.getDownloadArchiveFilename()).toMatch(
       new RegExp(`${FilesSource.TEST}_`),
     );
-    expect(tracePipeline.getTraces().getSize()).toEqual(2);
+    expect(tracePipeline.getTraces().getSize()).toBe(2);
 
     const traces = tracePipeline.getTraces();
     expect(
@@ -144,7 +144,7 @@
   });
 
   it('can load valid gzipped file and archive', async () => {
-    expect(tracePipeline.getTraces().getSize()).toEqual(0);
+    expect(tracePipeline.getTraces().getSize()).toBe(0);
 
     const gzippedFile = await getFixtureFile('archives/WindowManager.pb.gz');
     const gzippedArchive = await getFixtureFile(
@@ -155,8 +155,8 @@
     await expectLoadResult(2, []);
 
     const traces = tracePipeline.getTraces();
-    expect(traces.getSize()).toEqual(2);
-    expect(traces.getTraces(TraceType.WINDOW_MANAGER).length).toEqual(2);
+    expect(traces.getSize()).toBe(2);
+    expect(traces.getTraces(TraceType.WINDOW_MANAGER).length).toBe(2);
 
     const traceEntries = await extractEntries(traces);
     expect(traceEntries.get(TraceType.WINDOW_MANAGER)?.length).toBeGreaterThan(
@@ -191,7 +191,7 @@
   });
 
   it('detects bugreports and filters out files based on their directory', async () => {
-    expect(tracePipeline.getTraces().getSize()).toEqual(0);
+    expect(tracePipeline.getTraces().getSize()).toBe(0);
 
     const bugreportFiles = [
       brMainEntryFile,
@@ -240,7 +240,7 @@
 
     const timestampConverter = tracePipeline.getTimestampConverter();
     expect(timestampConverter);
-    expect(timestampConverter.getUTCOffset()).toEqual('UTC+05:30');
+    expect(timestampConverter.getUTCOffset()).toBe('UTC+05:30');
 
     const expectedTimestamp =
       TimestampConverterUtils.makeRealTimestampWithUTCOffset(
@@ -319,7 +319,7 @@
 
   it('surfaces information about packet loss', async () => {
     await loadFiles([perfettoFileProtolog]);
-    expect(tracePipeline.lostPackets()).toEqual(0);
+    expect(tracePipeline.lostPackets()).toBe(0);
 
     const queryResultObj = jasmine.createSpyObj<QueryResult>('result', [
       'numRows',
@@ -342,21 +342,21 @@
       )
       .and.returnValue(Promise.resolve(queryResultObj));
     await loadFiles([perfettoFileProtolog]);
-    expect(tracePipeline.lostPackets()).toEqual(2);
+    expect(tracePipeline.lostPackets()).toBe(2);
 
     queryResultObj.numRows.and.returnValue(0);
     await loadFiles([perfettoFileProtolog]); // clears lost packets from previous load on overwrite
-    expect(tracePipeline.lostPackets()).toEqual(0);
+    expect(tracePipeline.lostPackets()).toBe(0);
 
     queryResultObj.numRows.and.returnValue(1);
     await loadFiles([perfettoFileProtolog]);
-    expect(tracePipeline.lostPackets()).toEqual(2);
+    expect(tracePipeline.lostPackets()).toBe(2);
     tracePipeline.clear(); // resets lost packets on explicit clear call
-    expect(tracePipeline.lostPackets()).toEqual(0);
+    expect(tracePipeline.lostPackets()).toBe(0);
   });
 
   it('is robust to mixed valid and invalid trace files', async () => {
-    expect(tracePipeline.getTraces().getSize()).toEqual(0);
+    expect(tracePipeline.getTraces().getSize()).toBe(0);
     const files = [jpgFile, elapsedFile];
 
     await loadFiles(files);
@@ -516,7 +516,7 @@
     await expectLoadResult(2, []);
 
     tracePipeline.clear();
-    expect(tracePipeline.getTraces().getSize()).toEqual(0);
+    expect(tracePipeline.getTraces().getSize()).toBe(0);
   });
 
   it('can filter traces without visualization', async () => {
@@ -524,7 +524,7 @@
     await expectLoadResult(1, []);
 
     tracePipeline.filterTracesWithoutVisualization();
-    expect(tracePipeline.getTraces().getSize()).toEqual(0);
+    expect(tracePipeline.getTraces().getSize()).toBe(0);
     expect(
       tracePipeline.getTraces().getTrace(TraceType.SHELL_TRANSITION),
     ).toBeUndefined();
@@ -554,7 +554,7 @@
     expectLoadResult(2, []);
     tracePipeline.discardLegacyTraces();
     const traces = tracePipeline.getTraces();
-    expect(traces.getSize()).toEqual(1);
+    expect(traces.getSize()).toBe(1);
     expect(traces.getTrace(TraceType.SCREENSHOT)).toBeDefined();
   });
 
@@ -609,7 +609,7 @@
         [parserSf],
         undefined,
       );
-      expect(tracePipeline.getTraces().getSize()).toEqual(1);
+      expect(tracePipeline.getTraces().getSize()).toBe(1);
       checkSfTraceIsPerfetto();
     });
 
@@ -622,7 +622,7 @@
         [parserSf, parserPerfetto],
         new TraceFile(perfettoFileProtolog),
       );
-      expect(tracePipeline.getTraces().getSize()).toEqual(2);
+      expect(tracePipeline.getTraces().getSize()).toBe(2);
       checkSfTraceIsPerfetto();
     });
 
@@ -635,7 +635,7 @@
         [parserSf, parserWm],
         undefined,
       );
-      expect(tracePipeline.getTraces().getSize()).toEqual(2);
+      expect(tracePipeline.getTraces().getSize()).toBe(2);
       checkSfTraceIsPerfetto();
     });
 
diff --git a/tools/winscope/src/app/trace_search/trace_search_initializer_test.ts b/tools/winscope/src/app/trace_search/trace_search_initializer_test.ts
index e13860b..c84fa72 100644
--- a/tools/winscope/src/app/trace_search/trace_search_initializer_test.ts
+++ b/tools/winscope/src/app/trace_search/trace_search_initializer_test.ts
@@ -44,7 +44,7 @@
         AND property='flags'
         AND value!=previous_value
     `);
-    expect(queryResult.numRows()).toEqual(2);
+    expect(queryResult.numRows()).toBe(2);
 
     const queryResultEntry = await runQueryAndGetResult(`
       SELECT * FROM sf_hierarchy_root_search
@@ -54,7 +54,7 @@
           OR flat_property='displays.is_virtual'
         )
     `);
-    expect(queryResultEntry.numRows()).toEqual(40);
+    expect(queryResultEntry.numRows()).toBe(40);
   });
 
   it('initializes transactions', async () => {
@@ -68,14 +68,14 @@
         WHERE flat_property='transactions.layer_changes.x'
         AND value!='0.0'
     `);
-    expect(queryResultTransaction.numRows()).toEqual(3);
+    expect(queryResultTransaction.numRows()).toBe(3);
 
     const queryResultAddedLayer = await runQueryAndGetResult(`
       SELECT * FROM transactions_search
         WHERE flat_property='added_layers.name'
         AND value='ImeContainer'
     `);
-    expect(queryResultAddedLayer.numRows()).toEqual(1);
+    expect(queryResultAddedLayer.numRows()).toBe(1);
   });
 
   it('initializes protolog', async () => {
@@ -87,7 +87,7 @@
     const queryResult = await runQueryAndGetResult(`
       SELECT * FROM protolog WHERE message LIKE '%string%'
     `);
-    expect(queryResult.numRows()).toEqual(2);
+    expect(queryResult.numRows()).toBe(2);
   });
 
   it('initializes transitions', async () => {
@@ -101,7 +101,7 @@
         WHERE flat_property='handler'
         AND value LIKE '%DefaultMixedHandler'
     `);
-    expect(queryResult.numRows()).toEqual(2);
+    expect(queryResult.numRows()).toBe(2);
   });
 
   it('initializes view capture', async () => {
@@ -116,7 +116,7 @@
         AND flat_property='translation_y'
         AND value!=previous_value
     `);
-    expect(queryResult.numRows()).toEqual(28);
+    expect(queryResult.numRows()).toBe(28);
   });
 
   async function createViewsAndTestExamples(
diff --git a/tools/winscope/src/common/array_utils_test.ts b/tools/winscope/src/common/array_utils_test.ts
index bc107ea..368e9d3 100644
--- a/tools/winscope/src/common/array_utils_test.ts
+++ b/tools/winscope/src/common/array_utils_test.ts
@@ -83,20 +83,20 @@
   });
 
   it('searchSubarray', () => {
-    expect(searchSubarray([], [0])).toEqual(undefined);
-    expect(searchSubarray([], [])).toEqual(0);
-    expect(searchSubarray([0], [])).toEqual(0);
+    expect(searchSubarray([], [0])).toBeUndefined();
+    expect(searchSubarray([], [])).toBe(0);
+    expect(searchSubarray([0], [])).toBe(0);
 
-    expect(searchSubarray([0, 1, 2], [-1])).toEqual(undefined);
-    expect(searchSubarray([0, 1, 2], [])).toEqual(0);
-    expect(searchSubarray([0, 1, 2], [0])).toEqual(0);
-    expect(searchSubarray([0, 1, 2], [1])).toEqual(1);
-    expect(searchSubarray([0, 1, 2], [2])).toEqual(2);
+    expect(searchSubarray([0, 1, 2], [-1])).toBeUndefined();
+    expect(searchSubarray([0, 1, 2], [])).toBe(0);
+    expect(searchSubarray([0, 1, 2], [0])).toBe(0);
+    expect(searchSubarray([0, 1, 2], [1])).toBe(1);
+    expect(searchSubarray([0, 1, 2], [2])).toBe(2);
 
-    expect(searchSubarray([0, 1, 2], [0, 1])).toEqual(0);
-    expect(searchSubarray([0, 1, 2], [1, 2])).toEqual(1);
-    expect(searchSubarray([0, 1, 2], [2])).toEqual(2);
-    expect(searchSubarray([0, 1, 2], [2, 3])).toEqual(undefined);
+    expect(searchSubarray([0, 1, 2], [0, 1])).toBe(0);
+    expect(searchSubarray([0, 1, 2], [1, 2])).toBe(1);
+    expect(searchSubarray([0, 1, 2], [2])).toBe(2);
+    expect(searchSubarray([0, 1, 2], [2, 3])).toBeUndefined();
   });
 
   it('binarySearchFirstGreaterOrEqual', () => {
@@ -107,29 +107,29 @@
     expect(binarySearchFirstGreaterOrEqual([6, 7, 8], 9)).toBeUndefined();
 
     // match (greater)
-    expect(binarySearchFirstGreaterOrEqual([6], 5)).toEqual(0);
-    expect(binarySearchFirstGreaterOrEqual([6, 7], 5)).toEqual(0);
-    expect(binarySearchFirstGreaterOrEqual([4, 6], 5)).toEqual(1);
-    expect(binarySearchFirstGreaterOrEqual([4, 6, 7, 8], 5)).toEqual(1);
-    expect(binarySearchFirstGreaterOrEqual([3, 4, 6, 7, 8], 5)).toEqual(2);
+    expect(binarySearchFirstGreaterOrEqual([6], 5)).toBe(0);
+    expect(binarySearchFirstGreaterOrEqual([6, 7], 5)).toBe(0);
+    expect(binarySearchFirstGreaterOrEqual([4, 6], 5)).toBe(1);
+    expect(binarySearchFirstGreaterOrEqual([4, 6, 7, 8], 5)).toBe(1);
+    expect(binarySearchFirstGreaterOrEqual([3, 4, 6, 7, 8], 5)).toBe(2);
 
     // match (equal)
-    expect(binarySearchFirstGreaterOrEqual([5], 5)).toEqual(0);
-    expect(binarySearchFirstGreaterOrEqual([5, 6], 5)).toEqual(0);
-    expect(binarySearchFirstGreaterOrEqual([4, 5], 5)).toEqual(1);
-    expect(binarySearchFirstGreaterOrEqual([3, 4, 5], 5)).toEqual(2);
-    expect(binarySearchFirstGreaterOrEqual([3, 4, 5, 6], 5)).toEqual(2);
-    expect(binarySearchFirstGreaterOrEqual([3, 4, 5, 6, 7], 5)).toEqual(2);
+    expect(binarySearchFirstGreaterOrEqual([5], 5)).toBe(0);
+    expect(binarySearchFirstGreaterOrEqual([5, 6], 5)).toBe(0);
+    expect(binarySearchFirstGreaterOrEqual([4, 5], 5)).toBe(1);
+    expect(binarySearchFirstGreaterOrEqual([3, 4, 5], 5)).toBe(2);
+    expect(binarySearchFirstGreaterOrEqual([3, 4, 5, 6], 5)).toBe(2);
+    expect(binarySearchFirstGreaterOrEqual([3, 4, 5, 6, 7], 5)).toBe(2);
 
     // match (equal with repeated values)
-    expect(binarySearchFirstGreaterOrEqual([5, 5], 5)).toEqual(0);
-    expect(binarySearchFirstGreaterOrEqual([5, 5, 5], 5)).toEqual(0);
-    expect(binarySearchFirstGreaterOrEqual([5, 5, 5, 5], 5)).toEqual(0);
-    expect(binarySearchFirstGreaterOrEqual([4, 5, 5, 6], 5)).toEqual(1);
-    expect(binarySearchFirstGreaterOrEqual([4, 4, 5, 5, 5, 6], 5)).toEqual(2);
-    expect(
-      binarySearchFirstGreaterOrEqual([4, 4, 4, 5, 5, 5, 5, 6], 5),
-    ).toEqual(3);
+    expect(binarySearchFirstGreaterOrEqual([5, 5], 5)).toBe(0);
+    expect(binarySearchFirstGreaterOrEqual([5, 5, 5], 5)).toBe(0);
+    expect(binarySearchFirstGreaterOrEqual([5, 5, 5, 5], 5)).toBe(0);
+    expect(binarySearchFirstGreaterOrEqual([4, 5, 5, 6], 5)).toBe(1);
+    expect(binarySearchFirstGreaterOrEqual([4, 4, 5, 5, 5, 6], 5)).toBe(2);
+    expect(binarySearchFirstGreaterOrEqual([4, 4, 4, 5, 5, 5, 5, 6], 5)).toBe(
+      3,
+    );
   });
 
   it('binarySearchFirstGreater', () => {
@@ -140,55 +140,53 @@
     expect(binarySearchFirstGreater([6, 7, 8], 9)).toBeUndefined();
 
     // match
-    expect(binarySearchFirstGreater([6], 5)).toEqual(0);
-    expect(binarySearchFirstGreater([6, 7], 5)).toEqual(0);
-    expect(binarySearchFirstGreater([4, 6], 5)).toEqual(1);
-    expect(binarySearchFirstGreater([4, 6, 7, 8], 5)).toEqual(1);
-    expect(binarySearchFirstGreater([3, 4, 6, 7, 8], 5)).toEqual(2);
+    expect(binarySearchFirstGreater([6], 5)).toBe(0);
+    expect(binarySearchFirstGreater([6, 7], 5)).toBe(0);
+    expect(binarySearchFirstGreater([4, 6], 5)).toBe(1);
+    expect(binarySearchFirstGreater([4, 6, 7, 8], 5)).toBe(1);
+    expect(binarySearchFirstGreater([3, 4, 6, 7, 8], 5)).toBe(2);
 
     // match (ignore equal)
-    expect(binarySearchFirstGreater([5], 5)).toEqual(undefined);
-    expect(binarySearchFirstGreater([5, 6], 5)).toEqual(1);
-    expect(binarySearchFirstGreater([4, 5, 6], 5)).toEqual(2);
-    expect(binarySearchFirstGreater([3, 4, 5, 6], 5)).toEqual(3);
-    expect(binarySearchFirstGreater([3, 4, 5, 6, 7], 5)).toEqual(3);
+    expect(binarySearchFirstGreater([5], 5)).toBeUndefined();
+    expect(binarySearchFirstGreater([5, 6], 5)).toBe(1);
+    expect(binarySearchFirstGreater([4, 5, 6], 5)).toBe(2);
+    expect(binarySearchFirstGreater([3, 4, 5, 6], 5)).toBe(3);
+    expect(binarySearchFirstGreater([3, 4, 5, 6, 7], 5)).toBe(3);
 
     // match (with repeated values)
-    expect(binarySearchFirstGreater([6, 6], 5)).toEqual(0);
-    expect(binarySearchFirstGreater([6, 6, 6], 5)).toEqual(0);
-    expect(binarySearchFirstGreater([6, 6, 6, 6], 5)).toEqual(0);
-    expect(binarySearchFirstGreater([5, 6, 6, 7], 5)).toEqual(1);
-    expect(binarySearchFirstGreater([5, 5, 6, 6, 6, 7], 5)).toEqual(2);
-    expect(binarySearchFirstGreater([5, 5, 5, 6, 6, 6, 6, 7], 5)).toEqual(3);
+    expect(binarySearchFirstGreater([6, 6], 5)).toBe(0);
+    expect(binarySearchFirstGreater([6, 6, 6], 5)).toBe(0);
+    expect(binarySearchFirstGreater([6, 6, 6, 6], 5)).toBe(0);
+    expect(binarySearchFirstGreater([5, 6, 6, 7], 5)).toBe(1);
+    expect(binarySearchFirstGreater([5, 5, 6, 6, 6, 7], 5)).toBe(2);
+    expect(binarySearchFirstGreater([5, 5, 5, 6, 6, 6, 6, 7], 5)).toBe(3);
   });
 
   it('toUintLittleEndian', () => {
-    expect(toUintLittleEndian(new Uint8Array([0xff, 0xff]), 0, -1)).toEqual(0n);
-    expect(toUintLittleEndian(new Uint8Array([0xff, 0xff]), 0, 0)).toEqual(0n);
-    expect(toUintLittleEndian(new Uint8Array([0xff, 0xff]), 1, 1)).toEqual(0n);
+    expect(toUintLittleEndian(new Uint8Array([0xff, 0xff]), 0, -1)).toBe(0n);
+    expect(toUintLittleEndian(new Uint8Array([0xff, 0xff]), 0, 0)).toBe(0n);
+    expect(toUintLittleEndian(new Uint8Array([0xff, 0xff]), 1, 1)).toBe(0n);
 
-    expect(
-      toUintLittleEndian(new Uint8Array([0x00, 0x01, 0xff]), 0, 1),
-    ).toEqual(0n);
-    expect(
-      toUintLittleEndian(new Uint8Array([0x00, 0x01, 0xff]), 1, 2),
-    ).toEqual(1n);
-    expect(
-      toUintLittleEndian(new Uint8Array([0x00, 0x01, 0xff]), 2, 3),
-    ).toEqual(255n);
-
-    expect(toUintLittleEndian(new Uint8Array([0x00, 0x00]), 0, 2)).toEqual(0n);
-    expect(toUintLittleEndian(new Uint8Array([0x01, 0x00]), 0, 2)).toEqual(1n);
-    expect(toUintLittleEndian(new Uint8Array([0x00, 0x01]), 0, 2)).toEqual(
-      256n,
+    expect(toUintLittleEndian(new Uint8Array([0x00, 0x01, 0xff]), 0, 1)).toBe(
+      0n,
     );
+    expect(toUintLittleEndian(new Uint8Array([0x00, 0x01, 0xff]), 1, 2)).toBe(
+      1n,
+    );
+    expect(toUintLittleEndian(new Uint8Array([0x00, 0x01, 0xff]), 2, 3)).toBe(
+      255n,
+    );
+
+    expect(toUintLittleEndian(new Uint8Array([0x00, 0x00]), 0, 2)).toBe(0n);
+    expect(toUintLittleEndian(new Uint8Array([0x01, 0x00]), 0, 2)).toBe(1n);
+    expect(toUintLittleEndian(new Uint8Array([0x00, 0x01]), 0, 2)).toBe(256n);
     expect(toUintLittleEndian(new Uint8Array([0xff, 0xff]), 0, 2)).toEqual(
       0xffffn,
     );
 
     expect(
       toUintLittleEndian(new Uint8Array([0xff, 0xff, 0xff, 0xff]), 0, 4),
-    ).toEqual(0xffffffffn);
+    ).toBe(0xffffffffn);
 
     expect(
       toUintLittleEndian(
@@ -196,7 +194,7 @@
         0,
         8,
       ),
-    ).toEqual(0xffffffffffffffffn);
+    ).toBe(0xffffffffffffffffn);
 
     expect(
       toUintLittleEndian(
@@ -204,42 +202,36 @@
         0,
         9,
       ),
-    ).toEqual(0xffffffffffffffffffn);
+    ).toBe(0xffffffffffffffffffn);
   });
 
   it('toIntLittleEndian', () => {
-    expect(toIntLittleEndian(new Uint8Array([0xff]), 0, -1)).toEqual(0n);
-    expect(toIntLittleEndian(new Uint8Array([0xff]), 0, 0)).toEqual(0n);
+    expect(toIntLittleEndian(new Uint8Array([0xff]), 0, -1)).toBe(0n);
+    expect(toIntLittleEndian(new Uint8Array([0xff]), 0, 0)).toBe(0n);
 
-    expect(toIntLittleEndian(new Uint8Array([0x00]), 0, 1)).toEqual(0n);
-    expect(toIntLittleEndian(new Uint8Array([0x01]), 0, 1)).toEqual(1n);
-    expect(toIntLittleEndian(new Uint8Array([0x7f]), 0, 1)).toEqual(127n);
-    expect(toIntLittleEndian(new Uint8Array([0x80]), 0, 1)).toEqual(-128n);
-    expect(toIntLittleEndian(new Uint8Array([0xff]), 0, 1)).toEqual(-1n);
+    expect(toIntLittleEndian(new Uint8Array([0x00]), 0, 1)).toBe(0n);
+    expect(toIntLittleEndian(new Uint8Array([0x01]), 0, 1)).toBe(1n);
+    expect(toIntLittleEndian(new Uint8Array([0x7f]), 0, 1)).toBe(127n);
+    expect(toIntLittleEndian(new Uint8Array([0x80]), 0, 1)).toBe(-128n);
+    expect(toIntLittleEndian(new Uint8Array([0xff]), 0, 1)).toBe(-1n);
 
-    expect(toIntLittleEndian(new Uint8Array([0xff, 0x7f]), 0, 2)).toEqual(
-      32767n,
-    );
-    expect(toIntLittleEndian(new Uint8Array([0x00, 0x80]), 0, 2)).toEqual(
-      -32768n,
-    );
-    expect(toIntLittleEndian(new Uint8Array([0x01, 0x80]), 0, 2)).toEqual(
-      -32767n,
-    );
-    expect(toIntLittleEndian(new Uint8Array([0xff, 0xff]), 0, 2)).toEqual(-1n);
+    expect(toIntLittleEndian(new Uint8Array([0xff, 0x7f]), 0, 2)).toBe(32767n);
+    expect(toIntLittleEndian(new Uint8Array([0x00, 0x80]), 0, 2)).toBe(-32768n);
+    expect(toIntLittleEndian(new Uint8Array([0x01, 0x80]), 0, 2)).toBe(-32767n);
+    expect(toIntLittleEndian(new Uint8Array([0xff, 0xff]), 0, 2)).toBe(-1n);
 
     expect(
       toIntLittleEndian(new Uint8Array([0xff, 0xff, 0xff, 0x7f]), 0, 4),
-    ).toEqual(0x7fffffffn);
+    ).toBe(0x7fffffffn);
     expect(
       toIntLittleEndian(new Uint8Array([0x00, 0x00, 0x00, 0x80]), 0, 4),
-    ).toEqual(-0x80000000n);
+    ).toBe(-0x80000000n);
     expect(
       toIntLittleEndian(new Uint8Array([0x01, 0x00, 0x00, 0x80]), 0, 4),
-    ).toEqual(-0x7fffffffn);
+    ).toBe(-0x7fffffffn);
     expect(
       toIntLittleEndian(new Uint8Array([0xff, 0xff, 0xff, 0xff]), 0, 4),
-    ).toEqual(-1n);
+    ).toBe(-1n);
 
     expect(
       toIntLittleEndian(
@@ -247,28 +239,28 @@
         0,
         8,
       ),
-    ).toEqual(0x7fffffffffffffffn);
+    ).toBe(0x7fffffffffffffffn);
     expect(
       toIntLittleEndian(
         new Uint8Array([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80]),
         0,
         8,
       ),
-    ).toEqual(-0x8000000000000000n);
+    ).toBe(-0x8000000000000000n);
     expect(
       toIntLittleEndian(
         new Uint8Array([0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80]),
         0,
         8,
       ),
-    ).toEqual(-0x7fffffffffffffffn);
+    ).toBe(-0x7fffffffffffffffn);
     expect(
       toIntLittleEndian(
         new Uint8Array([0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]),
         0,
         8,
       ),
-    ).toEqual(-1n);
+    ).toBe(-1n);
 
     expect(
       toIntLittleEndian(
@@ -276,27 +268,27 @@
         0,
         9,
       ),
-    ).toEqual(0x7fffffffffffffffffn);
+    ).toBe(0x7fffffffffffffffffn);
     expect(
       toIntLittleEndian(
         new Uint8Array([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80]),
         0,
         9,
       ),
-    ).toEqual(-0x800000000000000000n);
+    ).toBe(-0x800000000000000000n);
     expect(
       toIntLittleEndian(
         new Uint8Array([0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80]),
         0,
         9,
       ),
-    ).toEqual(-0x7fffffffffffffffffn);
+    ).toBe(-0x7fffffffffffffffffn);
     expect(
       toIntLittleEndian(
         new Uint8Array([0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]),
         0,
         9,
       ),
-    ).toEqual(-1n);
+    ).toBe(-1n);
   });
 });
diff --git a/tools/winscope/src/common/bigint_math_test.ts b/tools/winscope/src/common/bigint_math_test.ts
index 175061d..848d09d 100644
--- a/tools/winscope/src/common/bigint_math_test.ts
+++ b/tools/winscope/src/common/bigint_math_test.ts
@@ -18,20 +18,20 @@
 
 describe('BigintMath', () => {
   it('divideAndRound', () => {
-    expect(divideAndRound(0n, 10n)).toEqual(0n);
-    expect(divideAndRound(10n, 10n)).toEqual(1n);
-    expect(divideAndRound(10n, 6n)).toEqual(2n);
-    expect(divideAndRound(10n, 5n)).toEqual(2n);
-    expect(divideAndRound(10n, 4n)).toEqual(3n);
+    expect(divideAndRound(0n, 10n)).toBe(0n);
+    expect(divideAndRound(10n, 10n)).toBe(1n);
+    expect(divideAndRound(10n, 6n)).toBe(2n);
+    expect(divideAndRound(10n, 5n)).toBe(2n);
+    expect(divideAndRound(10n, 4n)).toBe(3n);
     expect(() => divideAndRound(1n, 0n)).toThrowError();
-    expect(divideAndRound(10000n + 4999n, 10000n)).toEqual(1n);
-    expect(divideAndRound(10000n + 5000n, 10000n)).toEqual(2n);
+    expect(divideAndRound(10000n + 4999n, 10000n)).toBe(1n);
+    expect(divideAndRound(10000n + 5000n, 10000n)).toBe(2n);
   });
 
   it('getMax', () => {
     expect(getMax([])).toBeUndefined();
-    expect(getMax([1n])).toEqual(1n);
-    expect(getMax([1n, 2n])).toEqual(2n);
-    expect(getMax([-1n, 1n])).toEqual(1n);
+    expect(getMax([1n])).toBe(1n);
+    expect(getMax([1n, 2n])).toBe(2n);
+    expect(getMax([-1n, 1n])).toBe(1n);
   });
 });
diff --git a/tools/winscope/src/common/download_test.ts b/tools/winscope/src/common/download_test.ts
index 350b39b..93421d0 100644
--- a/tools/winscope/src/common/download_test.ts
+++ b/tools/winscope/src/common/download_test.ts
@@ -27,7 +27,7 @@
     Download.fromUrl('test_url', 'test_file_name');
 
     expect(testElement.href.endsWith('test_url')).toBeTrue();
-    expect(testElement.download).toEqual('test_file_name');
+    expect(testElement.download).toBe('test_file_name');
     expect(clickSpy).toHaveBeenCalled();
 
     expect(document.querySelector('.test-download-link')).toBeNull();
diff --git a/tools/winscope/src/common/file_utils_test.ts b/tools/winscope/src/common/file_utils_test.ts
index f9804bd..e3484d4 100644
--- a/tools/winscope/src/common/file_utils_test.ts
+++ b/tools/winscope/src/common/file_utils_test.ts
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+import {getFixtureFile} from 'test/unit/fixture_file_utils';
 import {
   createZipArchive,
   decompressGZipFile,
@@ -22,33 +23,32 @@
   removeDirFromFileName,
   removeExtensionFromFilename,
   unzipFile,
-} from 'common/file_utils';
-import {getFixtureFile} from 'test/unit/fixture_file_utils';
+} from './file_utils';
 
 describe('file_utils', () => {
   it('extracts file extensions', () => {
-    expect(getFileExtension('winscope.zip')).toEqual('zip');
-    expect(getFileExtension('win.scope.zip')).toEqual('zip');
-    expect(getFileExtension('winscopezip')).toEqual(undefined);
+    expect(getFileExtension('winscope.zip')).toBe('zip');
+    expect(getFileExtension('win.scope.zip')).toBe('zip');
+    expect(getFileExtension('winscopezip')).toBeUndefined();
   });
 
   it('extracts file directories', () => {
-    expect(getFileDirectory('test/winscope.zip')).toEqual('test');
-    expect(getFileDirectory('test/test/winscope.zip')).toEqual('test/test');
-    expect(getFileDirectory('winscope.zip')).toEqual(undefined);
+    expect(getFileDirectory('test/winscope.zip')).toBe('test');
+    expect(getFileDirectory('test/test/winscope.zip')).toBe('test/test');
+    expect(getFileDirectory('winscope.zip')).toBeUndefined();
   });
 
   it('removes directory from filename', () => {
-    expect(removeDirFromFileName('test/winscope.zip')).toEqual('winscope.zip');
-    expect(removeDirFromFileName('test/test/winscope.zip')).toEqual(
+    expect(removeDirFromFileName('test/winscope.zip')).toBe('winscope.zip');
+    expect(removeDirFromFileName('test/test/winscope.zip')).toBe(
       'winscope.zip',
     );
   });
 
   it('removes extension from filename', () => {
-    expect(removeExtensionFromFilename('winscope.zip')).toEqual('winscope');
-    expect(removeExtensionFromFilename('win.scope.zip')).toEqual('win.scope');
-    expect(removeExtensionFromFilename('winscopezip')).toEqual('winscopezip');
+    expect(removeExtensionFromFilename('winscope.zip')).toBe('winscope');
+    expect(removeExtensionFromFilename('win.scope.zip')).toBe('win.scope');
+    expect(removeExtensionFromFilename('winscopezip')).toBe('winscopezip');
   });
 
   it('creates zip archive', async () => {
@@ -98,8 +98,8 @@
   it('decompresses gzipped file', async () => {
     const gzippedFile = await getFixtureFile('archives/WindowManager.pb.gz');
     const unzippedFile = await decompressGZipFile(gzippedFile);
-    expect(unzippedFile.name).toEqual('archives/WindowManager.pb');
-    expect(unzippedFile.size).toEqual(377137);
+    expect(unzippedFile.name).toBe('archives/WindowManager.pb');
+    expect(unzippedFile.size).toBe(377137);
   });
 
   it('decompresses gzipped file without gz ext', async () => {
@@ -108,15 +108,15 @@
       'archives/WindowManager.pb',
     );
     const unzippedFile = await decompressGZipFile(gzippedFile);
-    expect(unzippedFile.name).toEqual('archives/WindowManager.pb');
-    expect(unzippedFile.size).toEqual(377137);
+    expect(unzippedFile.name).toBe('archives/WindowManager.pb');
+    expect(unzippedFile.size).toBe(377137);
   });
 
   it('decompresses gzipped archive', async () => {
     const gzippedFile = await getFixtureFile('archives/WindowManager.zip.gz');
     const unzippedFile = await decompressGZipFile(gzippedFile);
-    expect(unzippedFile.name).toEqual('archives/WindowManager.zip');
-    expect(unzippedFile.size).toEqual(10158);
+    expect(unzippedFile.name).toBe('archives/WindowManager.zip');
+    expect(unzippedFile.size).toBe(10158);
   });
 
   it('has download filename regex that accepts all expected inputs', () => {
diff --git a/tools/winscope/src/common/function_utils_test.ts b/tools/winscope/src/common/function_utils_test.ts
index c67d134..507e50b 100644
--- a/tools/winscope/src/common/function_utils_test.ts
+++ b/tools/winscope/src/common/function_utils_test.ts
@@ -37,9 +37,9 @@
 
     const mixinObj = mixin(a, b);
 
-    expect(mixinObj.a).toEqual('a');
-    expect(mixinObj.b).toEqual('b');
-    expect(mixinObj.foo()).toEqual('a');
-    expect(mixinObj.bar()).toEqual('b');
+    expect(mixinObj.a).toBe('a');
+    expect(mixinObj.b).toBe('b');
+    expect(mixinObj.foo()).toBe('a');
+    expect(mixinObj.bar()).toBe('b');
   });
 });
diff --git a/tools/winscope/src/common/geometry/corner_radii_test.ts b/tools/winscope/src/common/geometry/corner_radii_test.ts
index a9700d5..ad78409 100644
--- a/tools/winscope/src/common/geometry/corner_radii_test.ts
+++ b/tools/winscope/src/common/geometry/corner_radii_test.ts
@@ -26,23 +26,23 @@
 
   it('isEmpty should return true for all zero radii', () => {
     const radii = new CornerRadii(0, 0, 0, 0);
-    expect(radii.isEmpty()).toBe(true);
+    expect(radii.isEmpty()).toBeTrue();
   });
 
   it('isEmpty should return false for non-zero radii', () => {
     const radii = new CornerRadii(1, 0, 0, 0);
-    expect(radii.isEmpty()).toBe(false);
+    expect(radii.isEmpty()).toBeFalse();
   });
 
   it('isEqual should return true for equal radii', () => {
     const radii1 = new CornerRadii(1, 2, 3, 4);
     const radii2 = new CornerRadii(1, 2, 3, 4);
-    expect(radii1.isEqual(radii2)).toBe(true);
+    expect(radii1.isEqual(radii2)).toBeTrue();
   });
 
   it('isEqual should return false for unequal radii', () => {
     const radii1 = new CornerRadii(1, 2, 3, 4);
     const radii2 = new CornerRadii(5, 6, 7, 8);
-    expect(radii1.isEqual(radii2)).toBe(false);
+    expect(radii1.isEqual(radii2)).toBeFalse();
   });
 });
diff --git a/tools/winscope/src/common/geometry/point3d_test.ts b/tools/winscope/src/common/geometry/point3d_test.ts
index 0d229f1..f9817ab 100644
--- a/tools/winscope/src/common/geometry/point3d_test.ts
+++ b/tools/winscope/src/common/geometry/point3d_test.ts
@@ -26,12 +26,12 @@
   it('isEqual should return true for equal points', () => {
     const point1 = new Point3D(1, 2, 3);
     const point2 = new Point3D(1, 2, 3);
-    expect(point1.isEqual(point2)).toBe(true);
+    expect(point1.isEqual(point2)).toBeTrue();
   });
 
   it('isEqual should return false for unequal points', () => {
     const point1 = new Point3D(1, 2, 3);
     const point2 = new Point3D(4, 5, 6);
-    expect(point1.isEqual(point2)).toBe(false);
+    expect(point1.isEqual(point2)).toBeFalse();
   });
 });
diff --git a/tools/winscope/src/common/geometry/rect_test.ts b/tools/winscope/src/common/geometry/rect_test.ts
index 5d4cbd8..c124ded 100644
--- a/tools/winscope/src/common/geometry/rect_test.ts
+++ b/tools/winscope/src/common/geometry/rect_test.ts
@@ -28,22 +28,22 @@
   it('containsPoint should return true for a point inside the rect', () => {
     const rect = new Rect(0, 0, 10, 10);
     const point: Point = {x: 5, y: 5};
-    expect(rect.containsPoint(point)).toBe(true);
+    expect(rect.containsPoint(point)).toBeTrue();
   });
 
   it('containsPoint should return false for a point outside the rect', () => {
     const rect = new Rect(0, 0, 10, 10);
     const point: Point = {x: 15, y: 15};
-    expect(rect.containsPoint(point)).toBe(false);
+    expect(rect.containsPoint(point)).toBeFalse();
   });
 
   it('isEmpty should return true for an empty rect', () => {
     const rect = new Rect(-1, -1, 0, 0);
-    expect(rect.isEmpty()).toBe(true);
+    expect(rect.isEmpty()).toBeTrue();
   });
 
   it('isEmpty should return false for a non-empty rect', () => {
     const rect = new Rect(0, 0, 10, 10);
-    expect(rect.isEmpty()).toBe(false);
+    expect(rect.isEmpty()).toBeFalse();
   });
 });
diff --git a/tools/winscope/src/common/geometry/transform_matrix_test.ts b/tools/winscope/src/common/geometry/transform_matrix_test.ts
index bc588fe..152f68b 100644
--- a/tools/winscope/src/common/geometry/transform_matrix_test.ts
+++ b/tools/winscope/src/common/geometry/transform_matrix_test.ts
@@ -93,7 +93,7 @@
   it('should check for equality', () => {
     const sameMatrix = new TransformMatrix(2, 0, 10, 0, 3, 20);
     const differentMatrix = new TransformMatrix(1, 1, 1, 1, 1, 1);
-    expect(matrix.isEqual(sameMatrix)).toBe(true);
-    expect(matrix.isEqual(differentMatrix)).toBe(false);
+    expect(matrix.isEqual(sameMatrix)).toBeTrue();
+    expect(matrix.isEqual(differentMatrix)).toBeFalse();
   });
 });
diff --git a/tools/winscope/src/common/geometry/transform_utils_test.ts b/tools/winscope/src/common/geometry/transform_utils_test.ts
index f228d83..18aee77 100644
--- a/tools/winscope/src/common/geometry/transform_utils_test.ts
+++ b/tools/winscope/src/common/geometry/transform_utils_test.ts
@@ -157,10 +157,10 @@
   });
 
   it('should check if transform is simple', () => {
-    expect(isSimpleTransform(TransformTypeFlags.EMPTY)).toBe(true);
-    expect(isSimpleTransform(TransformTypeFlags.TRANSLATE_VAL)).toBe(true);
-    expect(isSimpleTransform(TransformTypeFlags.ROT_90_VAL)).toBe(true);
-    expect(isSimpleTransform(TransformTypeFlags.SCALE_VAL)).toBe(false);
-    expect(isSimpleTransform(TransformTypeFlags.ROT_INVALID_VAL)).toBe(false);
+    expect(isSimpleTransform(TransformTypeFlags.EMPTY)).toBeTrue();
+    expect(isSimpleTransform(TransformTypeFlags.TRANSLATE_VAL)).toBeTrue();
+    expect(isSimpleTransform(TransformTypeFlags.ROT_90_VAL)).toBeTrue();
+    expect(isSimpleTransform(TransformTypeFlags.SCALE_VAL)).toBeFalse();
+    expect(isSimpleTransform(TransformTypeFlags.ROT_INVALID_VAL)).toBeFalse();
   });
 });
diff --git a/tools/winscope/src/common/store/in_memory_storage_test.ts b/tools/winscope/src/common/store/in_memory_storage_test.ts
index e9413cb..e08cbc2 100644
--- a/tools/winscope/src/common/store/in_memory_storage_test.ts
+++ b/tools/winscope/src/common/store/in_memory_storage_test.ts
@@ -21,7 +21,7 @@
     const mockStorage = new InMemoryStorage();
     expect(mockStorage.get('key')).toBeUndefined();
     mockStorage.add('key', 'value');
-    expect(mockStorage.get('key')).toEqual('value');
+    expect(mockStorage.get('key')).toBe('value');
   });
 
   it('can clear values', () => {
diff --git a/tools/winscope/src/common/string_utils_test.ts b/tools/winscope/src/common/string_utils_test.ts
index d95eb3b..033f119 100644
--- a/tools/winscope/src/common/string_utils_test.ts
+++ b/tools/winscope/src/common/string_utils_test.ts
@@ -33,47 +33,47 @@
     expect(parseBigIntStrippingUnit('-10unit')).toEqual(-10n);
     expect(parseBigIntStrippingUnit(' -10 unit ')).toEqual(-10n);
 
-    expect(parseBigIntStrippingUnit('0')).toEqual(0n);
-    expect(parseBigIntStrippingUnit('0 unit')).toEqual(0n);
-    expect(parseBigIntStrippingUnit('0unit')).toEqual(0n);
-    expect(parseBigIntStrippingUnit(' 0 unit ')).toEqual(0n);
+    expect(parseBigIntStrippingUnit('0')).toBe(0n);
+    expect(parseBigIntStrippingUnit('0 unit')).toBe(0n);
+    expect(parseBigIntStrippingUnit('0unit')).toBe(0n);
+    expect(parseBigIntStrippingUnit(' 0 unit ')).toBe(0n);
 
-    expect(parseBigIntStrippingUnit('10')).toEqual(10n);
-    expect(parseBigIntStrippingUnit('10 unit')).toEqual(10n);
-    expect(parseBigIntStrippingUnit('10unit')).toEqual(10n);
-    expect(parseBigIntStrippingUnit(' 10 unit ')).toEqual(10n);
+    expect(parseBigIntStrippingUnit('10')).toBe(10n);
+    expect(parseBigIntStrippingUnit('10 unit')).toBe(10n);
+    expect(parseBigIntStrippingUnit('10unit')).toBe(10n);
+    expect(parseBigIntStrippingUnit(' 10 unit ')).toBe(10n);
 
     expect(() => parseBigIntStrippingUnit('invalid')).toThrow();
     expect(() => parseBigIntStrippingUnit('invalid 10 unit')).toThrow();
   });
 
   it('convertCamelToSnakeCase()', () => {
-    expect(convertCamelToSnakeCase('aaa')).toEqual('aaa');
-    expect(convertCamelToSnakeCase('Aaa')).toEqual('Aaa');
-    expect(convertCamelToSnakeCase('_aaa')).toEqual('_aaa');
-    expect(convertCamelToSnakeCase('_Aaa')).toEqual('_Aaa');
+    expect(convertCamelToSnakeCase('aaa')).toBe('aaa');
+    expect(convertCamelToSnakeCase('Aaa')).toBe('Aaa');
+    expect(convertCamelToSnakeCase('_aaa')).toBe('_aaa');
+    expect(convertCamelToSnakeCase('_Aaa')).toBe('_Aaa');
 
-    expect(convertCamelToSnakeCase('aaaBbb')).toEqual('aaa_bbb');
-    expect(convertCamelToSnakeCase('AaaBbb')).toEqual('Aaa_bbb');
-    expect(convertCamelToSnakeCase('aaa_bbb')).toEqual('aaa_bbb');
-    expect(convertCamelToSnakeCase('aaa_Bbb')).toEqual('aaa_Bbb');
+    expect(convertCamelToSnakeCase('aaaBbb')).toBe('aaa_bbb');
+    expect(convertCamelToSnakeCase('AaaBbb')).toBe('Aaa_bbb');
+    expect(convertCamelToSnakeCase('aaa_bbb')).toBe('aaa_bbb');
+    expect(convertCamelToSnakeCase('aaa_Bbb')).toBe('aaa_Bbb');
 
-    expect(convertCamelToSnakeCase('aaaBbbCcc')).toEqual('aaa_bbb_ccc');
-    expect(convertCamelToSnakeCase('aaaBbb_ccc')).toEqual('aaa_bbb_ccc');
-    expect(convertCamelToSnakeCase('aaaBbb_Ccc')).toEqual('aaa_bbb_Ccc');
+    expect(convertCamelToSnakeCase('aaaBbbCcc')).toBe('aaa_bbb_ccc');
+    expect(convertCamelToSnakeCase('aaaBbb_ccc')).toBe('aaa_bbb_ccc');
+    expect(convertCamelToSnakeCase('aaaBbb_Ccc')).toBe('aaa_bbb_Ccc');
 
-    expect(convertCamelToSnakeCase('aaaBBBccc')).toEqual('aaa_bBBccc');
-    expect(convertCamelToSnakeCase('aaaBBBcccDDD')).toEqual('aaa_bBBccc_dDD');
-    expect(convertCamelToSnakeCase('aaaBBB_ccc')).toEqual('aaa_bBB_ccc');
-    expect(convertCamelToSnakeCase('aaaBbb_CCC')).toEqual('aaa_bbb_CCC');
+    expect(convertCamelToSnakeCase('aaaBBBccc')).toBe('aaa_bBBccc');
+    expect(convertCamelToSnakeCase('aaaBBBcccDDD')).toBe('aaa_bBBccc_dDD');
+    expect(convertCamelToSnakeCase('aaaBBB_ccc')).toBe('aaa_bBB_ccc');
+    expect(convertCamelToSnakeCase('aaaBbb_CCC')).toBe('aaa_bbb_CCC');
 
-    expect(convertCamelToSnakeCase('_field_32')).toEqual('_field_32');
-    expect(convertCamelToSnakeCase('field_32')).toEqual('field_32');
-    expect(convertCamelToSnakeCase('field_32Bits')).toEqual('field_32_bits');
+    expect(convertCamelToSnakeCase('_field_32')).toBe('_field_32');
+    expect(convertCamelToSnakeCase('field_32')).toBe('field_32');
+    expect(convertCamelToSnakeCase('field_32Bits')).toBe('field_32_bits');
     expect(convertCamelToSnakeCase('field_32BitsLsb')).toEqual(
       'field_32_bits_lsb',
     );
-    expect(convertCamelToSnakeCase('field_32bits')).toEqual('field_32bits');
+    expect(convertCamelToSnakeCase('field_32bits')).toBe('field_32bits');
     expect(convertCamelToSnakeCase('field_32bitsLsb')).toEqual(
       'field_32bits_lsb',
     );
@@ -81,29 +81,29 @@
     expect(convertCamelToSnakeCase('_aaaAaa.bbbBbb')).toEqual(
       '_aaa_aaa.bbb_bbb',
     );
-    expect(convertCamelToSnakeCase('aaaAaa.bbbBbb')).toEqual('aaa_aaa.bbb_bbb');
+    expect(convertCamelToSnakeCase('aaaAaa.bbbBbb')).toBe('aaa_aaa.bbb_bbb');
     expect(convertCamelToSnakeCase('aaaAaa.field_32bitsLsb.bbbBbb')).toEqual(
       'aaa_aaa.field_32bits_lsb.bbb_bbb',
     );
   });
 
   it('convertSnakeToCamelCase()', () => {
-    expect(convertSnakeToCamelCase('_aaa')).toEqual('_aaa');
-    expect(convertSnakeToCamelCase('aaa')).toEqual('aaa');
+    expect(convertSnakeToCamelCase('_aaa')).toBe('_aaa');
+    expect(convertSnakeToCamelCase('aaa')).toBe('aaa');
 
-    expect(convertSnakeToCamelCase('aaa_bbb')).toEqual('aaaBbb');
-    expect(convertSnakeToCamelCase('_aaa_bbb')).toEqual('_aaaBbb');
+    expect(convertSnakeToCamelCase('aaa_bbb')).toBe('aaaBbb');
+    expect(convertSnakeToCamelCase('_aaa_bbb')).toBe('_aaaBbb');
 
-    expect(convertSnakeToCamelCase('aaa_bbb_ccc')).toEqual('aaaBbbCcc');
-    expect(convertSnakeToCamelCase('_aaa_bbb_ccc')).toEqual('_aaaBbbCcc');
+    expect(convertSnakeToCamelCase('aaa_bbb_ccc')).toBe('aaaBbbCcc');
+    expect(convertSnakeToCamelCase('_aaa_bbb_ccc')).toBe('_aaaBbbCcc');
 
-    expect(convertSnakeToCamelCase('_field_32')).toEqual('_field_32');
-    expect(convertSnakeToCamelCase('field_32')).toEqual('field_32');
-    expect(convertSnakeToCamelCase('field_32_bits')).toEqual('field_32Bits');
+    expect(convertSnakeToCamelCase('_field_32')).toBe('_field_32');
+    expect(convertSnakeToCamelCase('field_32')).toBe('field_32');
+    expect(convertSnakeToCamelCase('field_32_bits')).toBe('field_32Bits');
     expect(convertSnakeToCamelCase('field_32_bits_lsb')).toEqual(
       'field_32BitsLsb',
     );
-    expect(convertSnakeToCamelCase('field_32bits')).toEqual('field_32bits');
+    expect(convertSnakeToCamelCase('field_32bits')).toBe('field_32bits');
     expect(convertSnakeToCamelCase('field_32bits_lsb')).toEqual(
       'field_32bitsLsb',
     );
@@ -111,7 +111,7 @@
     expect(convertSnakeToCamelCase('_aaa_aaa.bbb_bbb')).toEqual(
       '_aaaAaa.bbbBbb',
     );
-    expect(convertSnakeToCamelCase('aaa_aaa.bbb_bbb')).toEqual('aaaAaa.bbbBbb');
+    expect(convertSnakeToCamelCase('aaa_aaa.bbb_bbb')).toBe('aaaAaa.bbbBbb');
     expect(convertSnakeToCamelCase('aaa_aaa.field_32bits_lsb.bbb_bbb')).toEqual(
       'aaaAaa.field_32bitsLsb.bbbBbb',
     );
diff --git a/tools/winscope/src/common/time/time_test.ts b/tools/winscope/src/common/time/time_test.ts
index 630ce9a..8d1859c 100644
--- a/tools/winscope/src/common/time/time_test.ts
+++ b/tools/winscope/src/common/time/time_test.ts
@@ -63,67 +63,67 @@
       expect(TimestampConverterUtils.makeElapsedTimestamp(0n).format()).toEqual(
         '0ns',
       );
-      expect(
-        TimestampConverterUtils.makeElapsedTimestamp(1000n).format(),
-      ).toEqual('1000ns');
+      expect(TimestampConverterUtils.makeElapsedTimestamp(1000n).format()).toBe(
+        '1000ns',
+      );
       expect(
         TimestampConverterUtils.makeElapsedTimestamp(
           10n * MILLISECOND,
         ).format(),
-      ).toEqual('10ms0ns');
+      ).toBe('10ms0ns');
 
       expect(
         TimestampConverterUtils.makeElapsedTimestamp(SECOND - 1n).format(),
-      ).toEqual('999ms999999ns');
+      ).toBe('999ms999999ns');
       expect(
         TimestampConverterUtils.makeElapsedTimestamp(SECOND).format(),
-      ).toEqual('1s0ms0ns');
+      ).toBe('1s0ms0ns');
       expect(
         TimestampConverterUtils.makeElapsedTimestamp(
           SECOND + MILLISECOND,
         ).format(),
-      ).toEqual('1s1ms0ns');
+      ).toBe('1s1ms0ns');
 
       expect(
         TimestampConverterUtils.makeElapsedTimestamp(MINUTE - 1n).format(),
-      ).toEqual('59s999ms999999ns');
+      ).toBe('59s999ms999999ns');
       expect(
         TimestampConverterUtils.makeElapsedTimestamp(MINUTE).format(),
-      ).toEqual('1m0s0ms0ns');
+      ).toBe('1m0s0ms0ns');
       expect(
         TimestampConverterUtils.makeElapsedTimestamp(
           MINUTE + SECOND + MILLISECOND,
         ).format(),
-      ).toEqual('1m1s1ms0ns');
+      ).toBe('1m1s1ms0ns');
       expect(
         TimestampConverterUtils.makeElapsedTimestamp(
           MINUTE + SECOND + MILLISECOND + 1n,
         ).format(),
-      ).toEqual('1m1s1ms1ns');
+      ).toBe('1m1s1ms1ns');
 
       expect(
         TimestampConverterUtils.makeElapsedTimestamp(HOUR - 1n).format(),
-      ).toEqual('59m59s999ms999999ns');
-      expect(
-        TimestampConverterUtils.makeElapsedTimestamp(HOUR).format(),
-      ).toEqual('1h0m0s0ms0ns');
+      ).toBe('59m59s999ms999999ns');
+      expect(TimestampConverterUtils.makeElapsedTimestamp(HOUR).format()).toBe(
+        '1h0m0s0ms0ns',
+      );
       expect(
         TimestampConverterUtils.makeElapsedTimestamp(
           HOUR + MINUTE + SECOND + MILLISECOND,
         ).format(),
-      ).toEqual('1h1m1s1ms0ns');
+      ).toBe('1h1m1s1ms0ns');
 
       expect(
         TimestampConverterUtils.makeElapsedTimestamp(DAY - 1n).format(),
-      ).toEqual('23h59m59s999ms999999ns');
-      expect(
-        TimestampConverterUtils.makeElapsedTimestamp(DAY).format(),
-      ).toEqual('1d0h0m0s0ms0ns');
+      ).toBe('23h59m59s999ms999999ns');
+      expect(TimestampConverterUtils.makeElapsedTimestamp(DAY).format()).toBe(
+        '1d0h0m0s0ms0ns',
+      );
       expect(
         TimestampConverterUtils.makeElapsedTimestamp(
           DAY + HOUR + MINUTE + SECOND + MILLISECOND,
         ).format(),
-      ).toEqual('1d1h1m1s1ms0ns');
+      ).toBe('1d1h1m1s1ms0ns');
     });
 
     it('real timestamps without timezone info', () => {
@@ -140,13 +140,13 @@
             186n * MILLISECOND +
             123212n,
         ).format(),
-      ).toEqual('2022-11-10, 22:04:54.186');
+      ).toBe('2022-11-10, 22:04:54.186');
       expect(
         TimestampConverterUtils.makeRealTimestamp(NOV_10_2022).format(),
-      ).toEqual('2022-11-10, 00:00:00.000');
+      ).toBe('2022-11-10, 00:00:00.000');
       expect(
         TimestampConverterUtils.makeRealTimestamp(NOV_10_2022 + 1n).format(),
-      ).toEqual('2022-11-10, 00:00:00.000');
+      ).toBe('2022-11-10, 00:00:00.000');
 
       expect(TimestampConverterUtils.makeRealTimestamp(0n).format()).toEqual(
         '1970-01-01, 00:00:00.000',
@@ -160,13 +160,13 @@
             186n * MILLISECOND +
             123212n,
         ).format(),
-      ).toEqual('2022-11-10, 22:04:54.186');
+      ).toBe('2022-11-10, 22:04:54.186');
       expect(
         TimestampConverterUtils.makeRealTimestamp(NOV_10_2022).format(),
-      ).toEqual('2022-11-10, 00:00:00.000');
+      ).toBe('2022-11-10, 00:00:00.000');
       expect(
         TimestampConverterUtils.makeRealTimestamp(NOV_10_2022 + 1n).format(),
-      ).toEqual('2022-11-10, 00:00:00.000');
+      ).toBe('2022-11-10, 00:00:00.000');
     });
 
     it('real timestamps with timezone info', () => {
@@ -175,7 +175,7 @@
         TimestampConverterUtils.TIMESTAMP_CONVERTER_WITH_UTC_OFFSET.makeTimestampFromRealNs(
           0n,
         ).format(),
-      ).toEqual('1970-01-01, 05:30:00.000');
+      ).toBe('1970-01-01, 05:30:00.000');
       expect(
         TimestampConverterUtils.TIMESTAMP_CONVERTER_WITH_UTC_OFFSET.makeTimestampFromRealNs(
           NOV_10_2022 +
@@ -185,23 +185,23 @@
             186n * MILLISECOND +
             123212n,
         ).format(),
-      ).toEqual('2022-11-11, 03:34:54.186');
+      ).toBe('2022-11-11, 03:34:54.186');
       expect(
         TimestampConverterUtils.TIMESTAMP_CONVERTER_WITH_UTC_OFFSET.makeTimestampFromRealNs(
           NOV_10_2022,
         ).format(),
-      ).toEqual('2022-11-10, 05:30:00.000');
+      ).toBe('2022-11-10, 05:30:00.000');
       expect(
         TimestampConverterUtils.TIMESTAMP_CONVERTER_WITH_UTC_OFFSET.makeTimestampFromRealNs(
           NOV_10_2022 + 1n,
         ).format(),
-      ).toEqual('2022-11-10, 05:30:00.000');
+      ).toBe('2022-11-10, 05:30:00.000');
 
       expect(
         TimestampConverterUtils.TIMESTAMP_CONVERTER_WITH_UTC_OFFSET.makeTimestampFromRealNs(
           0n,
         ).format(),
-      ).toEqual('1970-01-01, 05:30:00.000');
+      ).toBe('1970-01-01, 05:30:00.000');
       expect(
         TimestampConverterUtils.TIMESTAMP_CONVERTER_WITH_UTC_OFFSET.makeTimestampFromRealNs(
           NOV_10_2022 +
@@ -211,17 +211,17 @@
             186n * MILLISECOND +
             123212n,
         ).format(),
-      ).toEqual('2022-11-11, 03:34:54.186');
+      ).toBe('2022-11-11, 03:34:54.186');
       expect(
         TimestampConverterUtils.TIMESTAMP_CONVERTER_WITH_UTC_OFFSET.makeTimestampFromRealNs(
           NOV_10_2022,
         ).format(),
-      ).toEqual('2022-11-10, 05:30:00.000');
+      ).toBe('2022-11-10, 05:30:00.000');
       expect(
         TimestampConverterUtils.TIMESTAMP_CONVERTER_WITH_UTC_OFFSET.makeTimestampFromRealNs(
           NOV_10_2022 + 1n,
         ).format(),
-      ).toEqual('2022-11-10, 05:30:00.000');
+      ).toBe('2022-11-10, 05:30:00.000');
     });
   });
 });
diff --git a/tools/winscope/src/common/time/timestamp_converter_test.ts b/tools/winscope/src/common/time/timestamp_converter_test.ts
index 0e81c28..ced2d15 100644
--- a/tools/winscope/src/common/time/timestamp_converter_test.ts
+++ b/tools/winscope/src/common/time/timestamp_converter_test.ts
@@ -54,7 +54,7 @@
         TimestampConverterUtils.UTC_TIMEZONE_INFO,
       ).makeTimestampFromRealNs(testRealNs);
       expect(timestamp.getValueNs()).toBe(testRealNs);
-      expect(timestamp.format()).toEqual('2022-07-31, 04:55:41.051');
+      expect(timestamp.format()).toBe('2022-07-31, 04:55:41.051');
     });
 
     it('can create real-formatted timestamp with real to monotonic offset', () => {
@@ -63,7 +63,7 @@
       expect(timestamp.getValueNs()).toBe(
         testRealNs + testMonotonicTimeOffsetNs,
       );
-      expect(timestamp.format()).toEqual('2022-07-31, 04:55:41.056');
+      expect(timestamp.format()).toBe('2022-07-31, 04:55:41.056');
     });
 
     it('can create real-formatted timestamp with real to boot time offset', () => {
@@ -72,7 +72,7 @@
       expect(timestamp.getValueNs()).toBe(
         testRealNs + testRealToBootTimeOffsetNs,
       );
-      expect(timestamp.format()).toEqual('2022-07-31, 04:55:41.052');
+      expect(timestamp.format()).toBe('2022-07-31, 04:55:41.052');
     });
 
     it('can create elapsed-formatted timestamp', () => {
@@ -80,7 +80,7 @@
         TimestampConverterUtils.UTC_TIMEZONE_INFO,
       ).makeTimestampFromMonotonicNs(testElapsedNs);
       expect(timestamp.getValueNs()).toBe(testElapsedNs);
-      expect(timestamp.format()).toEqual('100ns');
+      expect(timestamp.format()).toBe('100ns');
     });
 
     it('formats real-formatted timestamp with offset correctly', () => {
@@ -88,12 +88,12 @@
         converterWithMonotonicOffset
           .makeTimestampFromMonotonicNs(100n * MILLISECOND)
           .format(),
-      ).toEqual('1970-01-01, 00:00:00.105');
+      ).toBe('1970-01-01, 00:00:00.105');
       expect(
         converterWithMonotonicOffset
           .makeTimestampFromRealNs(100n * MILLISECOND)
           .format(),
-      ).toEqual('1970-01-01, 00:00:00.100');
+      ).toBe('1970-01-01, 00:00:00.100');
     });
   });
 
@@ -128,7 +128,7 @@
 
       const timestamp = converter.makeTimestampFromRealNs(testRealNs);
       expect(timestamp.getValueNs()).toBe(testRealNs);
-      expect(timestamp.format()).toEqual('2022-07-31, 10:25:41.051');
+      expect(timestamp.format()).toBe('2022-07-31, 10:25:41.051');
     });
 
     it('can create real-formatted timestamp with monotonic offset', () => {
@@ -137,7 +137,7 @@
       expect(timestamp.getValueNs()).toBe(
         testRealNs + testMonotonicTimeOffsetNs,
       );
-      expect(timestamp.format()).toEqual('2022-07-31, 10:25:41.056');
+      expect(timestamp.format()).toBe('2022-07-31, 10:25:41.056');
     });
 
     it('can create real-formatted timestamp with real to boot time offset', () => {
@@ -146,7 +146,7 @@
       expect(timestamp.getValueNs()).toBe(
         testRealNs + testRealToBootTimeOffsetNs,
       );
-      expect(timestamp.format()).toEqual('2022-07-31, 10:25:41.052');
+      expect(timestamp.format()).toBe('2022-07-31, 10:25:41.052');
     });
 
     it('can create elapsed-formatted timestamp', () => {
@@ -154,7 +154,7 @@
         TimestampConverterUtils.ASIA_TIMEZONE_INFO,
       ).makeTimestampFromMonotonicNs(testElapsedNs);
       expect(timestamp.getValueNs()).toBe(testElapsedNs);
-      expect(timestamp.format()).toEqual('100ns');
+      expect(timestamp.format()).toBe('100ns');
     });
 
     describe('adds correct offset for different timezones', () => {
@@ -171,7 +171,7 @@
         );
         expect(
           londonConverter.makeTimestampFromRealNs(testRealNs).format(),
-        ).toEqual('2022-07-31, 05:55:41.051');
+        ).toBe('2022-07-31, 05:55:41.051');
 
         const zurichConverter = new TimestampConverter(
           {
@@ -185,7 +185,7 @@
         );
         expect(
           zurichConverter.makeTimestampFromRealNs(testRealNs).format(),
-        ).toEqual('2022-07-31, 06:55:41.051');
+        ).toBe('2022-07-31, 06:55:41.051');
 
         const westCoastConverter = new TimestampConverter(
           {
@@ -199,7 +199,7 @@
         );
         expect(
           westCoastConverter.makeTimestampFromRealNs(testRealNs).format(),
-        ).toEqual('2022-07-30, 21:55:41.051');
+        ).toBe('2022-07-30, 21:55:41.051');
 
         const indiaConverter = new TimestampConverter(
           {
@@ -213,7 +213,7 @@
         );
         expect(
           indiaConverter.makeTimestampFromRealNs(testRealNs).format(),
-        ).toEqual('2022-07-31, 10:25:41.051');
+        ).toBe('2022-07-31, 10:25:41.051');
       });
     });
   });
@@ -461,7 +461,7 @@
         converterWithMonotonicOffset
           .makeTimestampFromHuman('2022-11-10, 22:04:54.186123212')
           .format(),
-      ).toEqual('2022-11-10, 22:04:54.186');
+      ).toBe('2022-11-10, 22:04:54.186');
     });
   });
 
@@ -532,7 +532,7 @@
         converter
           .makeTimestampFromHuman('2022-11-11, 03:34:54.186123212')
           .format(),
-      ).toEqual('2022-11-11, 03:34:54.186');
+      ).toBe('2022-11-11, 03:34:54.186');
     });
 
     function testMakeTimestampFromHumanReal(
diff --git a/tools/winscope/src/common/time/utc_offset_test.ts b/tools/winscope/src/common/time/utc_offset_test.ts
index 568a719..5135598 100644
--- a/tools/winscope/src/common/time/utc_offset_test.ts
+++ b/tools/winscope/src/common/time/utc_offset_test.ts
@@ -22,32 +22,32 @@
 
   it('sets positive offset for whole single-digit number hours', () => {
     utcOffset.initialize(BigInt(TIME_UNIT_TO_NANO.h * 2));
-    expect(utcOffset.format()).toEqual('UTC+02:00');
+    expect(utcOffset.format()).toBe('UTC+02:00');
   });
 
   it('sets positive offset for whole double-digit number hours', () => {
     utcOffset.initialize(BigInt(TIME_UNIT_TO_NANO.h * 11));
-    expect(utcOffset.format()).toEqual('UTC+11:00');
+    expect(utcOffset.format()).toBe('UTC+11:00');
   });
 
   it('sets positive offset for fractional hours', () => {
     utcOffset.initialize(BigInt(TIME_UNIT_TO_NANO.h * 5.5));
-    expect(utcOffset.format()).toEqual('UTC+05:30');
+    expect(utcOffset.format()).toBe('UTC+05:30');
   });
 
   it('sets negative offset for whole single-digit number hours', () => {
     utcOffset.initialize(BigInt(TIME_UNIT_TO_NANO.h * -8));
-    expect(utcOffset.format()).toEqual('UTC-08:00');
+    expect(utcOffset.format()).toBe('UTC-08:00');
   });
 
   it('sets negative offset for whole double-digit number hours', () => {
     utcOffset.initialize(BigInt(TIME_UNIT_TO_NANO.h * -10));
-    expect(utcOffset.format()).toEqual('UTC-10:00');
+    expect(utcOffset.format()).toBe('UTC-10:00');
   });
 
   it('sets negative offset for fractional hours', () => {
     utcOffset.initialize(BigInt(TIME_UNIT_TO_NANO.h * -4.5));
-    expect(utcOffset.format()).toEqual('UTC-04:30');
+    expect(utcOffset.format()).toBe('UTC-04:30');
   });
 
   it('does not set offset for invalid value', () => {
diff --git a/tools/winscope/src/common/window_utils_test.ts b/tools/winscope/src/common/window_utils_test.ts
index b080c69..0850d60 100644
--- a/tools/winscope/src/common/window_utils_test.ts
+++ b/tools/winscope/src/common/window_utils_test.ts
@@ -27,7 +27,7 @@
     windowSpy.and.returnValue(jasmine.any(Window));
     expect(showPopupWindow('test')).toEqual(true);
     expect(windowSpy).toHaveBeenCalledTimes(1);
-    expect(windowSpy.calls.allArgs()[0][0]).toEqual('test');
+    expect(windowSpy.calls.allArgs()[0][0]).toBe('test');
   });
 
   it('returns false if window fails to open', () => {
diff --git a/tools/winscope/src/cross_tool/cross_tool_protocol_test.ts b/tools/winscope/src/cross_tool/cross_tool_protocol_test.ts
index a25d47a..dc81a7b 100644
--- a/tools/winscope/src/cross_tool/cross_tool_protocol_test.ts
+++ b/tools/winscope/src/cross_tool/cross_tool_protocol_test.ts
@@ -109,7 +109,7 @@
     const receivedEvent = emittedEvent as RemoteToolTimestampReceived;
     const timestamp = assertDefined(receivedEvent.deferredTimestamp)();
     expect(timestamp).toBeInstanceOf(Timestamp);
-    expect(timestamp?.getValueNs()).toEqual(1750932189844553958n);
+    expect(timestamp?.getValueNs()).toBe(1750932189844553958n);
   });
 
   it('handles debug info message without timestamp', async () => {
diff --git a/tools/winscope/src/parsers/events/legacy/parser_eventlog_test.ts b/tools/winscope/src/parsers/events/legacy/parser_eventlog_test.ts
index 377367b..b19e2e7 100644
--- a/tools/winscope/src/parsers/events/legacy/parser_eventlog_test.ts
+++ b/tools/winscope/src/parsers/events/legacy/parser_eventlog_test.ts
@@ -49,7 +49,7 @@
     it('has expected timestamps', () => {
       const timestamps = assertDefined(parser.getTimestamps());
 
-      expect(timestamps.length).toEqual(184);
+      expect(timestamps.length).toBe(184);
 
       const expected = [
         TimestampConverterUtils.makeRealTimestamp(1681207047981157174n),
@@ -98,7 +98,7 @@
     it('sorts entries to make timestamps monotonically increasing', () => {
       const timestamps = assertDefined(parser.getTimestamps());
 
-      expect(timestamps.length).toEqual(3);
+      expect(timestamps.length).toBe(3);
 
       const expected = [
         TimestampConverterUtils.makeRealTimestamp(1681207047981157174n),
diff --git a/tools/winscope/src/parsers/events/legacy/traces_parser_cujs_test.ts b/tools/winscope/src/parsers/events/legacy/traces_parser_cujs_test.ts
index 87f4279..b06370e 100644
--- a/tools/winscope/src/parsers/events/legacy/traces_parser_cujs_test.ts
+++ b/tools/winscope/src/parsers/events/legacy/traces_parser_cujs_test.ts
@@ -63,7 +63,7 @@
     ];
 
     const timestamps = assertDefined(parser.getTimestamps());
-    expect(timestamps.length).toEqual(16);
+    expect(timestamps.length).toBe(16);
     expect(timestamps.slice(0, 3)).toEqual(expected);
   });
 
diff --git a/tools/winscope/src/parsers/input/operations/input_coordinate_propagator_test.ts b/tools/winscope/src/parsers/input/operations/input_coordinate_propagator_test.ts
index 08505dd..4f3f795 100644
--- a/tools/winscope/src/parsers/input/operations/input_coordinate_propagator_test.ts
+++ b/tools/winscope/src/parsers/input/operations/input_coordinate_propagator_test.ts
@@ -75,25 +75,25 @@
         ?.getChildByName('x')
         ?.getChildByName('axis')
         ?.getValue(),
-    ).toEqual(0);
+    ).toBe(0);
     expect(
       axisValueInWindow
         ?.getChildByName('x')
         ?.getChildByName('value')
         ?.getValue(),
-    ).toEqual(1.23);
+    ).toBe(1.23);
     expect(
       axisValueInWindow
         ?.getChildByName('y')
         ?.getChildByName('axis')
         ?.getValue(),
-    ).toEqual(1);
+    ).toBe(1);
     expect(
       axisValueInWindow
         ?.getChildByName('y')
         ?.getChildByName('value')
         ?.getValue(),
-    ).toEqual(9.87);
+    ).toBe(9.87);
     expect(
       root
         .getChildByName('dispatchEvents')
@@ -102,7 +102,7 @@
         ?.getChildByName('0')
         ?.getChildByName('xInDisplay')
         ?.getValue(),
-    ).toEqual(1.23);
+    ).toBe(1.23);
     expect(
       root
         .getChildByName('dispatchEvents')
@@ -111,7 +111,7 @@
         ?.getChildByName('0')
         ?.getChildByName('yInDisplay')
         ?.getValue(),
-    ).toEqual(9.87);
+    ).toBe(9.87);
   });
 
   it('does not propagate when pointer ids do not match', () => {
@@ -200,26 +200,26 @@
         ?.getChildByName('0')
         ?.getChildByName('axis')
         ?.getValue(),
-    ).toEqual(0);
+    ).toBe(0);
     expect(
       axisValueInWindow
         ?.getChildByName('0')
         ?.getChildByName('value')
         ?.getValue(),
-    ).toEqual(5);
+    ).toBe(5);
     expect(axisValueInWindow?.getChildByName('1')).toBeUndefined();
     expect(
       axisValueInWindow
         ?.getChildByName('y')
         ?.getChildByName('axis')
         ?.getValue(),
-    ).toEqual(1);
+    ).toBe(1);
     expect(
       axisValueInWindow
         ?.getChildByName('y')
         ?.getChildByName('value')
         ?.getValue(),
-    ).toEqual(9.87);
+    ).toBe(9.87);
     expect(
       root
         .getChildByName('dispatchEvents')
@@ -228,7 +228,7 @@
         ?.getChildByName('0')
         ?.getChildByName('xInDisplay')
         ?.getValue(),
-    ).toEqual(0.98);
+    ).toBe(0.98);
     expect(
       root
         .getChildByName('dispatchEvents')
@@ -237,7 +237,7 @@
         ?.getChildByName('0')
         ?.getChildByName('yInDisplay')
         ?.getValue(),
-    ).toEqual(9.87);
+    ).toBe(9.87);
   });
 
   it('does not propagate when XY not present in event', () => {
diff --git a/tools/winscope/src/parsers/input/perfetto/parser_key_event_test.ts b/tools/winscope/src/parsers/input/perfetto/parser_key_event_test.ts
index 1190810..07b0d74 100644
--- a/tools/winscope/src/parsers/input/perfetto/parser_key_event_test.ts
+++ b/tools/winscope/src/parsers/input/perfetto/parser_key_event_test.ts
@@ -48,7 +48,7 @@
   it('provides timestamps', () => {
     const timestamps = assertDefined(parser.getTimestamps());
 
-    expect(timestamps.length).toEqual(2);
+    expect(timestamps.length).toBe(2);
 
     const expected = [
       TimestampConverterUtils.makeRealTimestamp(1718386905115026232n),
@@ -59,34 +59,34 @@
 
   it('retrieves all entries', async () => {
     const entries = await parser.getAllEntries();
-    expect(entries.length).toEqual(2);
+    expect(entries.length).toBe(2);
     expect(entries.every((entry) => entry !== undefined)).toBeTrue();
   });
 
   it('retrieves trace entry from timestamp', async () => {
     const entry = await parser.getEntry(1);
-    expect(entry.id).toEqual('AndroidKeyEvent entry');
+    expect(entry.id).toBe('AndroidKeyEvent entry');
   });
 
   it('retrieves and translates eager property values', async () => {
     const entry = await parser.getEntry(0);
 
-    expect(entry.getEagerPropertyByName('eventId')?.getValue()).toEqual(
+    expect(entry.getEagerPropertyByName('eventId')?.getValue()).toBe(
       759309047n,
     );
-    expect(entry.getEagerPropertyByName('action')?.formattedValue()).toEqual(
+    expect(entry.getEagerPropertyByName('action')?.formattedValue()).toBe(
       'ACTION_DOWN',
     );
-    expect(entry.getEagerPropertyByName('source')?.formattedValue()).toEqual(
+    expect(entry.getEagerPropertyByName('source')?.formattedValue()).toBe(
       'SOURCE_KEYBOARD',
     );
-    expect(entry.getEagerPropertyByName('deviceId')?.formattedValue()).toEqual(
+    expect(entry.getEagerPropertyByName('deviceId')?.formattedValue()).toBe(
       '2',
     );
-    expect(entry.getEagerPropertyByName('displayId')?.formattedValue()).toEqual(
+    expect(entry.getEagerPropertyByName('displayId')?.formattedValue()).toBe(
       '-1',
     );
-    expect(entry.getEagerPropertyByName('keyCode')?.formattedValue()).toEqual(
+    expect(entry.getEagerPropertyByName('keyCode')?.formattedValue()).toBe(
       'KEYCODE_VOLUME_UP',
     );
   });
@@ -97,24 +97,22 @@
     const properties = await entry.getAllProperties();
     const keyEvent = assertDefined(properties.getChildByName('event'));
 
-    expect(keyEvent.getChildByName('flags')?.formattedValue()).toEqual(
+    expect(keyEvent.getChildByName('flags')?.formattedValue()).toBe(
       'FLAG_FROM_SYSTEM',
     );
-    expect(keyEvent.getChildByName('action')?.formattedValue()).toEqual(
+    expect(keyEvent.getChildByName('action')?.formattedValue()).toBe(
       'ACTION_DOWN',
     );
-    expect(keyEvent.getChildByName('source')?.formattedValue()).toEqual(
+    expect(keyEvent.getChildByName('source')?.formattedValue()).toBe(
       'SOURCE_KEYBOARD',
     );
-    expect(keyEvent.getChildByName('deviceId')?.getValue()).toEqual(2);
-    expect(keyEvent.getChildByName('displayId')?.getValue()).toEqual(-1);
-    expect(keyEvent.getChildByName('metaState')?.formattedValue()).toEqual(
-      '0x0',
-    );
-    expect(keyEvent.getChildByName('keyCode')?.formattedValue()).toEqual(
+    expect(keyEvent.getChildByName('deviceId')?.getValue()).toBe(2);
+    expect(keyEvent.getChildByName('displayId')?.getValue()).toBe(-1);
+    expect(keyEvent.getChildByName('metaState')?.formattedValue()).toBe('0x0');
+    expect(keyEvent.getChildByName('keyCode')?.formattedValue()).toBe(
       'KEYCODE_VOLUME_UP',
     );
-    expect(keyEvent.getChildByName('scanCode')?.getValue()).toEqual(115);
+    expect(keyEvent.getChildByName('scanCode')?.getValue()).toBe(115);
   });
 
   it('merges key event with all associated dispatch events', async () => {
@@ -125,19 +123,19 @@
       properties.getChildByName('dispatchEvents'),
     );
 
-    expect(windowDispatchEvents?.getAllChildren().length).toEqual(2);
+    expect(windowDispatchEvents?.getAllChildren().length).toBe(2);
     expect(
       windowDispatchEvents
         ?.getChildByName('0')
         ?.getChildByName('windowId')
         ?.getValue(),
-    ).toEqual(212n);
+    ).toBe(212n);
     expect(
       windowDispatchEvents
         ?.getChildByName('1')
         ?.getChildByName('windowId')
         ?.getValue(),
-    ).toEqual(0n);
+    ).toBe(0n);
   });
 
   it('supports VSYNCID custom query', async () => {
diff --git a/tools/winscope/src/parsers/input/perfetto/parser_motion_event_test.ts b/tools/winscope/src/parsers/input/perfetto/parser_motion_event_test.ts
index 85e8777..08a0eee 100644
--- a/tools/winscope/src/parsers/input/perfetto/parser_motion_event_test.ts
+++ b/tools/winscope/src/parsers/input/perfetto/parser_motion_event_test.ts
@@ -48,7 +48,7 @@
   it('provides timestamps', () => {
     const timestamps = assertDefined(parser.getTimestamps());
 
-    expect(timestamps.length).toEqual(6);
+    expect(timestamps.length).toBe(6);
 
     const expected = [
       TimestampConverterUtils.makeRealTimestamp(1718386903800330430n),
@@ -63,31 +63,31 @@
 
   it('retrieves all entries', async () => {
     const entries = await parser.getAllEntries();
-    expect(entries.length).toEqual(6);
+    expect(entries.length).toBe(6);
     expect(entries.every((entry) => entry !== undefined)).toBeTrue();
   });
 
   it('retrieves trace entry from timestamp', async () => {
     const entry = await parser.getEntry(1);
-    expect(entry.id).toEqual('AndroidMotionEvent entry');
+    expect(entry.id).toBe('AndroidMotionEvent entry');
   });
 
   it('retrieves and translates eager property values', async () => {
     const entry = await parser.getEntry(0);
 
-    expect(entry.getEagerPropertyByName('eventId')?.getValue()).toEqual(
+    expect(entry.getEagerPropertyByName('eventId')?.getValue()).toBe(
       330184796n,
     );
-    expect(entry.getEagerPropertyByName('action')?.formattedValue()).toEqual(
+    expect(entry.getEagerPropertyByName('action')?.formattedValue()).toBe(
       'ACTION_DOWN',
     );
-    expect(entry.getEagerPropertyByName('source')?.formattedValue()).toEqual(
+    expect(entry.getEagerPropertyByName('source')?.formattedValue()).toBe(
       'SOURCE_TOUCHSCREEN',
     );
-    expect(entry.getEagerPropertyByName('deviceId')?.formattedValue()).toEqual(
+    expect(entry.getEagerPropertyByName('deviceId')?.formattedValue()).toBe(
       '4',
     );
-    expect(entry.getEagerPropertyByName('displayId')?.formattedValue()).toEqual(
+    expect(entry.getEagerPropertyByName('displayId')?.formattedValue()).toBe(
       '0',
     );
   });
@@ -98,23 +98,23 @@
     const properties = await entry.getAllProperties();
     const motionEvent = assertDefined(properties.getChildByName('event'));
 
-    expect(motionEvent.getChildByName('flags')?.formattedValue()).toEqual(
+    expect(motionEvent.getChildByName('flags')?.formattedValue()).toBe(
       'FLAG_SUPPORTS_ORIENTATION',
     );
-    expect(motionEvent.getChildByName('action')?.formattedValue()).toEqual(
+    expect(motionEvent.getChildByName('action')?.formattedValue()).toBe(
       'ACTION_DOWN',
     );
-    expect(motionEvent.getChildByName('source')?.formattedValue()).toEqual(
+    expect(motionEvent.getChildByName('source')?.formattedValue()).toBe(
       'SOURCE_TOUCHSCREEN',
     );
-    expect(motionEvent.getChildByName('deviceId')?.getValue()).toEqual(4);
-    expect(motionEvent.getChildByName('displayId')?.getValue()).toEqual(0);
-    expect(
-      motionEvent.getChildByName('classification')?.formattedValue(),
-    ).toEqual('CLASSIFICATION_NONE');
-    expect(motionEvent.getChildByName('cursorPositionX')).toEqual(undefined);
-    expect(motionEvent.getChildByName('cursorPositionY')).toEqual(undefined);
-    expect(motionEvent.getChildByName('metaState')?.formattedValue()).toEqual(
+    expect(motionEvent.getChildByName('deviceId')?.getValue()).toBe(4);
+    expect(motionEvent.getChildByName('displayId')?.getValue()).toBe(0);
+    expect(motionEvent.getChildByName('classification')?.formattedValue()).toBe(
+      'CLASSIFICATION_NONE',
+    );
+    expect(motionEvent.getChildByName('cursorPositionX')).toBeUndefined();
+    expect(motionEvent.getChildByName('cursorPositionY')).toBeUndefined();
+    expect(motionEvent.getChildByName('metaState')?.formattedValue()).toBe(
       '0x0',
     );
 
@@ -122,9 +122,9 @@
       ?.getChildByName('pointer')
       ?.getChildByName('0');
 
-    expect(firstPointer?.getChildByName('pointerId')?.getValue()).toEqual(0);
+    expect(firstPointer?.getChildByName('pointerId')?.getValue()).toBe(0);
 
-    expect(firstPointer?.getChildByName('toolType')?.formattedValue()).toEqual(
+    expect(firstPointer?.getChildByName('toolType')?.formattedValue()).toBe(
       'TOOL_TYPE_FINGER',
     );
 
@@ -134,7 +134,7 @@
         ?.getChildByName('0')
         ?.getChildByName('axis')
         ?.formattedValue(),
-    ).toEqual('AXIS_X');
+    ).toBe('AXIS_X');
 
     expect(
       firstPointer
@@ -142,7 +142,7 @@
         ?.getChildByName('0')
         ?.getChildByName('value')
         ?.getValue(),
-    ).toEqual(431);
+    ).toBe(431);
 
     expect(
       firstPointer
@@ -150,7 +150,7 @@
         ?.getChildByName('1')
         ?.getChildByName('axis')
         ?.formattedValue(),
-    ).toEqual('AXIS_Y');
+    ).toBe('AXIS_Y');
 
     expect(
       firstPointer
@@ -158,7 +158,7 @@
         ?.getChildByName('1')
         ?.getChildByName('value')
         ?.getValue(),
-    ).toEqual(624);
+    ).toBe(624);
   });
 
   it('merges key event with all associated dispatch events', async () => {
@@ -169,37 +169,37 @@
       properties.getChildByName('dispatchEvents'),
     );
 
-    expect(windowDispatchEvents?.getAllChildren().length).toEqual(5);
+    expect(windowDispatchEvents?.getAllChildren().length).toBe(5);
     expect(
       windowDispatchEvents
         ?.getChildByName('0')
         ?.getChildByName('windowId')
         ?.getValue(),
-    ).toEqual(212n);
+    ).toBe(212n);
     expect(
       windowDispatchEvents
         ?.getChildByName('1')
         ?.getChildByName('windowId')
         ?.getValue(),
-    ).toEqual(64n);
+    ).toBe(64n);
     expect(
       windowDispatchEvents
         ?.getChildByName('2')
         ?.getChildByName('windowId')
         ?.getValue(),
-    ).toEqual(82n);
+    ).toBe(82n);
     expect(
       windowDispatchEvents
         ?.getChildByName('3')
         ?.getChildByName('windowId')
         ?.getValue(),
-    ).toEqual(75n);
+    ).toBe(75n);
     expect(
       windowDispatchEvents
         ?.getChildByName('4')
         ?.getChildByName('windowId')
         ?.getValue(),
-    ).toEqual(0n);
+    ).toBe(0n);
   });
 
   it('supports VSYNCID custom query', async () => {
diff --git a/tools/winscope/src/parsers/input/perfetto/traces_parser_input_test.ts b/tools/winscope/src/parsers/input/perfetto/traces_parser_input_test.ts
index 2e4e743..797d97a 100644
--- a/tools/winscope/src/parsers/input/perfetto/traces_parser_input_test.ts
+++ b/tools/winscope/src/parsers/input/perfetto/traces_parser_input_test.ts
@@ -74,7 +74,7 @@
 
   it('retrieves all entries', async () => {
     const entries = await parser.getAllEntries();
-    expect(entries.length).toEqual(8);
+    expect(entries.length).toBe(8);
     expect(entries.every((entry) => entry !== undefined)).toBeTrue();
   });
 
@@ -91,9 +91,9 @@
     expect(motionEvent.getEagerPropertyByName('eventId')?.getValue()).toEqual(
       330184796n,
     );
-    expect(
-      motionEvent.getEagerPropertyByName('type')?.formattedValue(),
-    ).toEqual('MOTION');
+    expect(motionEvent.getEagerPropertyByName('type')?.formattedValue()).toBe(
+      'MOTION',
+    );
   });
 
   it('supports VSYNCID custom query', async () => {
diff --git a/tools/winscope/src/parsers/input_method/legacy/parser_input_method_clients_test.ts b/tools/winscope/src/parsers/input_method/legacy/parser_input_method_clients_test.ts
index 1f73394..6a2cdde 100644
--- a/tools/winscope/src/parsers/input_method/legacy/parser_input_method_clients_test.ts
+++ b/tools/winscope/src/parsers/input_method/legacy/parser_input_method_clients_test.ts
@@ -60,14 +60,14 @@
 
     it('converts to valid perfetto packets', async () => {
       const packets = parser.convertToPerfettoPackets!(10);
-      expect(packets.length).toEqual(13);
-      expect(packets[0].trustedPacketSequenceId).toEqual(10);
+      expect(packets.length).toBe(13);
+      expect(packets[0].trustedPacketSequenceId).toBe(10);
       const data =
         packets[0].winscopeExtensions?.[
           '.perfetto.protos.WinscopeExtensionsImpl.inputmethodClients'
         ];
       expect(data?.client).toBeDefined();
-      expect(data?.where).toEqual('InsetsSourceConsumer#setControl');
+      expect(data?.where).toBe('InsetsSourceConsumer#setControl');
       const ts = Long.fromString(BigInt(15613638434).toString());
       ts.unsigned = true;
       expect(packets[0].timestamp).toEqual(ts);
@@ -96,7 +96,7 @@
         ?.getChildByName('viewRootImpl')
         ?.getChildByName('windowAttributes')
         ?.getChildByName('type');
-      expect(intdefProperty?.formattedValue()).toEqual('TYPE_BASE_APPLICATION');
+      expect(intdefProperty?.formattedValue()).toBe('TYPE_BASE_APPLICATION');
     });
   });
 
@@ -126,14 +126,14 @@
 
     it('converts to valid perfetto packets', async () => {
       const packets = parser.convertToPerfettoPackets!(10);
-      expect(packets.length).toEqual(33);
-      expect(packets[0].trustedPacketSequenceId).toEqual(10);
+      expect(packets.length).toBe(33);
+      expect(packets[0].trustedPacketSequenceId).toBe(10);
       const data =
         packets[0].winscopeExtensions?.[
           '.perfetto.protos.WinscopeExtensionsImpl.inputmethodClients'
         ];
       expect(data?.client).toBeDefined();
-      expect(data?.where).toEqual('InsetsSourceConsumer#setControl');
+      expect(data?.where).toBe('InsetsSourceConsumer#setControl');
       const ts = Long.fromString(BigInt(1149083651642).toString());
       ts.unsigned = true;
       expect(packets[0].timestamp).toEqual(ts);
diff --git a/tools/winscope/src/parsers/input_method/legacy/parser_input_method_manager_service_test.ts b/tools/winscope/src/parsers/input_method/legacy/parser_input_method_manager_service_test.ts
index 79f1789..f0dca53 100644
--- a/tools/winscope/src/parsers/input_method/legacy/parser_input_method_manager_service_test.ts
+++ b/tools/winscope/src/parsers/input_method/legacy/parser_input_method_manager_service_test.ts
@@ -59,14 +59,14 @@
 
     it('converts to valid perfetto packets', async () => {
       const packets = parser.convertToPerfettoPackets!(10);
-      expect(packets.length).toEqual(1);
-      expect(packets[0].trustedPacketSequenceId).toEqual(10);
+      expect(packets.length).toBe(1);
+      expect(packets[0].trustedPacketSequenceId).toBe(10);
       const data =
         packets[0].winscopeExtensions?.[
           '.perfetto.protos.WinscopeExtensionsImpl.inputmethodManagerService'
         ];
       expect(data?.inputMethodManagerService).toBeDefined();
-      expect(data?.where).toEqual(
+      expect(data?.where).toBe(
         'InputMethodManagerService#startInputOrWindowGainedFocus',
       );
       const ts = Long.fromString(BigInt(15963782518).toString());
@@ -88,7 +88,7 @@
 
       const entry = await perfettoParser.getEntry(0);
       expect(entry).toBeInstanceOf(HierarchyTreeNode);
-      expect(entry.getEagerPropertyByName('where')?.getValue()).toEqual(
+      expect(entry.getEagerPropertyByName('where')?.getValue()).toBe(
         'InputMethodManagerService#startInputOrWindowGainedFocus',
       );
     });
@@ -121,14 +121,14 @@
 
     it('converts to valid perfetto packets', async () => {
       const packets = parser.convertToPerfettoPackets!(10);
-      expect(packets.length).toEqual(3);
-      expect(packets[0].trustedPacketSequenceId).toEqual(10);
+      expect(packets.length).toBe(3);
+      expect(packets[0].trustedPacketSequenceId).toBe(10);
       const data =
         packets[0].winscopeExtensions?.[
           '.perfetto.protos.WinscopeExtensionsImpl.inputmethodManagerService'
         ];
       expect(data?.inputMethodManagerService).toBeDefined();
-      expect(data?.where).toEqual(
+      expect(data?.where).toBe(
         'InputMethodManagerService#startInputOrWindowGainedFocus',
       );
       const ts = Long.fromString(BigInt(1149226290110).toString());
diff --git a/tools/winscope/src/parsers/input_method/legacy/parser_input_method_service_test.ts b/tools/winscope/src/parsers/input_method/legacy/parser_input_method_service_test.ts
index d1bbee7..ab0108d 100644
--- a/tools/winscope/src/parsers/input_method/legacy/parser_input_method_service_test.ts
+++ b/tools/winscope/src/parsers/input_method/legacy/parser_input_method_service_test.ts
@@ -57,14 +57,14 @@
 
     it('converts to valid perfetto packets', async () => {
       const packets = parser.convertToPerfettoPackets!(10);
-      expect(packets.length).toEqual(1);
-      expect(packets[0].trustedPacketSequenceId).toEqual(10);
+      expect(packets.length).toBe(1);
+      expect(packets[0].trustedPacketSequenceId).toBe(10);
       const data =
         packets[0].winscopeExtensions?.[
           '.perfetto.protos.WinscopeExtensionsImpl.inputmethodService'
         ];
       expect(data?.inputMethodService).toBeDefined();
-      expect(data?.where).toEqual('InputMethodService#doStartInput');
+      expect(data?.where).toBe('InputMethodService#doStartInput');
       const ts = Long.fromString(BigInt(16578752896).toString());
       ts.unsigned = true;
       expect(packets[0].timestamp).toEqual(ts);
@@ -82,7 +82,7 @@
 
       const entry = await perfettoParser.getEntry(0);
       expect(entry).toBeInstanceOf(HierarchyTreeNode);
-      expect(entry.getEagerPropertyByName('where')?.getValue()).toEqual(
+      expect(entry.getEagerPropertyByName('where')?.getValue()).toBe(
         'InputMethodService#doStartInput',
       );
     });
@@ -113,15 +113,15 @@
 
     it('converts to valid perfetto packets', async () => {
       const packets = parser.convertToPerfettoPackets!(10);
-      expect(packets.length).toEqual(7);
-      expect(packets[0].trustedPacketSequenceId).toEqual(10);
+      expect(packets.length).toBe(7);
+      expect(packets[0].trustedPacketSequenceId).toBe(10);
 
       const data = assertDefined(
         packets[0].winscopeExtensions?.[
           '.perfetto.protos.WinscopeExtensionsImpl.inputmethodService'
         ],
       );
-      expect(data.where).toEqual('InputMethodService#doFinishInput');
+      expect(data.where).toBe('InputMethodService#doFinishInput');
       expect(data?.inputMethodService).toBeDefined();
       const ts = Long.fromString(BigInt(1149230019887).toString());
       ts.unsigned = true;
diff --git a/tools/winscope/src/parsers/input_method/perfetto/parser_input_method_clients_test.ts b/tools/winscope/src/parsers/input_method/perfetto/parser_input_method_clients_test.ts
index 310b8eb..5b62ffc 100644
--- a/tools/winscope/src/parsers/input_method/perfetto/parser_input_method_clients_test.ts
+++ b/tools/winscope/src/parsers/input_method/perfetto/parser_input_method_clients_test.ts
@@ -44,7 +44,7 @@
   });
 
   it('provides timestamps', () => {
-    expect(assertDefined(parser.getTimestamps()).length).toEqual(56);
+    expect(assertDefined(parser.getTimestamps()).length).toBe(56);
 
     const expected = [
       TimestampConverterUtils.makeRealTimestamp(1714659585862265133n),
@@ -57,7 +57,7 @@
   it('retrieves trace entry', async () => {
     const entry = await parser.getEntry(1);
     expect(entry).toBeInstanceOf(HierarchyTreeNode);
-    expect(entry.id).toEqual('InputMethodClients entry');
+    expect(entry.id).toBe('InputMethodClients entry');
   });
 
   it('translates intdefs', async () => {
@@ -70,6 +70,6 @@
         ?.getChildByName('windowAttributes')
         ?.getChildByName('type'),
     );
-    expect(intdefProperty.formattedValue()).toEqual('TYPE_BASE_APPLICATION');
+    expect(intdefProperty.formattedValue()).toBe('TYPE_BASE_APPLICATION');
   });
 });
diff --git a/tools/winscope/src/parsers/input_method/perfetto/parser_input_method_manager_service_test.ts b/tools/winscope/src/parsers/input_method/perfetto/parser_input_method_manager_service_test.ts
index 9931a56..3a26bd3 100644
--- a/tools/winscope/src/parsers/input_method/perfetto/parser_input_method_manager_service_test.ts
+++ b/tools/winscope/src/parsers/input_method/perfetto/parser_input_method_manager_service_test.ts
@@ -46,7 +46,7 @@
   });
 
   it('provides timestamps', () => {
-    expect(assertDefined(parser.getTimestamps()).length).toEqual(7);
+    expect(assertDefined(parser.getTimestamps()).length).toBe(7);
 
     const expected = [
       TimestampConverterUtils.makeRealTimestamp(1714659587704398638n),
@@ -59,6 +59,6 @@
   it('retrieves trace entry', async () => {
     const entry = await parser.getEntry(0);
     expect(entry).toBeInstanceOf(HierarchyTreeNode);
-    expect(entry.id).toEqual('InputMethodManagerService entry');
+    expect(entry.id).toBe('InputMethodManagerService entry');
   });
 });
diff --git a/tools/winscope/src/parsers/input_method/perfetto/parser_input_method_service_test.ts b/tools/winscope/src/parsers/input_method/perfetto/parser_input_method_service_test.ts
index a22e251..7c1c03a 100644
--- a/tools/winscope/src/parsers/input_method/perfetto/parser_input_method_service_test.ts
+++ b/tools/winscope/src/parsers/input_method/perfetto/parser_input_method_service_test.ts
@@ -44,7 +44,7 @@
   });
 
   it('provides timestamps', () => {
-    expect(assertDefined(parser.getTimestamps()).length).toEqual(18);
+    expect(assertDefined(parser.getTimestamps()).length).toBe(18);
 
     const expected = [
       TimestampConverterUtils.makeRealTimestamp(1714659587709640744n),
@@ -57,6 +57,6 @@
   it('retrieves trace entry', async () => {
     const entry = await parser.getEntry(0);
     expect(entry).toBeInstanceOf(HierarchyTreeNode);
-    expect(entry.id).toEqual('InputMethodService entry');
+    expect(entry.id).toBe('InputMethodService entry');
   });
 });
diff --git a/tools/winscope/src/parsers/legacy/parser_common_test.ts b/tools/winscope/src/parsers/legacy/parser_common_test.ts
index 9786293..4e72eed 100644
--- a/tools/winscope/src/parsers/legacy/parser_common_test.ts
+++ b/tools/winscope/src/parsers/legacy/parser_common_test.ts
@@ -50,7 +50,7 @@
         TimestampConverterUtils.TIMESTAMP_CONVERTER,
         {},
       );
-      expect(processed.parsers.length).toEqual(0);
+      expect(processed.parsers.length).toBe(0);
       expect(processed.unsupportedFiles).toEqual(unsupported ? [trace] : []);
     }
   });
@@ -83,12 +83,12 @@
       let entry = await parser.getEntry(0);
       expect(
         assertDefined(entry.getEagerPropertyByName('focusedApp')).getValue(),
-      ).toEqual('com.google.android.apps.nexuslauncher/.NexusLauncherActivity');
+      ).toBe('com.google.android.apps.nexuslauncher/.NexusLauncherActivity');
 
       entry = await parser.getEntry(parser.getLengthEntries() - 1);
       expect(
         assertDefined(entry.getEagerPropertyByName('focusedApp')).getValue(),
-      ).toEqual('com.google.android.apps.nexuslauncher/.NexusLauncherActivity');
+      ).toBe('com.google.android.apps.nexuslauncher/.NexusLauncherActivity');
     });
   });
 
@@ -114,12 +114,12 @@
       let entry = await parser.getEntry(0);
       expect(
         assertDefined(entry.getEagerPropertyByName('focusedApp')).getValue(),
-      ).toEqual('com.google.android.apps.nexuslauncher/.NexusLauncherActivity');
+      ).toBe('com.google.android.apps.nexuslauncher/.NexusLauncherActivity');
 
       entry = await parser.getEntry(parser.getLengthEntries() - 1);
       expect(
         assertDefined(entry.getEagerPropertyByName('focusedApp')).getValue(),
-      ).toEqual('com.google.android.apps.nexuslauncher/.NexusLauncherActivity');
+      ).toBe('com.google.android.apps.nexuslauncher/.NexusLauncherActivity');
     });
   });
 });
diff --git a/tools/winscope/src/parsers/operations/add_defaults_test.ts b/tools/winscope/src/parsers/operations/add_defaults_test.ts
index 8781f8e..0f466d4 100644
--- a/tools/winscope/src/parsers/operations/add_defaults_test.ts
+++ b/tools/winscope/src/parsers/operations/add_defaults_test.ts
@@ -42,28 +42,28 @@
   it('adds only defaults from allowlist', () => {
     operation = new AddDefaults(rootField, ['number_32bit']);
     operation.apply(propertyRoot);
-    expect(propertyRoot.getAllChildren().length).toEqual(1);
+    expect(propertyRoot.getAllChildren().length).toBe(1);
     const defaultNode = assertDefined(
       propertyRoot.getChildByName('number_32bit'),
     );
-    expect(defaultNode.getValue()).toEqual(0);
+    expect(defaultNode.getValue()).toBe(0);
     checkAllNodesAreDefault(propertyRoot);
   });
 
   it('adds all defaults from prototype definition in absence of allowlist', () => {
     operation = new AddDefaults(rootField);
     operation.apply(propertyRoot);
-    expect(propertyRoot.getAllChildren().length).toEqual(11);
+    expect(propertyRoot.getAllChildren().length).toBe(11);
     checkAllNodesAreDefault(propertyRoot);
     expect(
       assertDefined(propertyRoot.getChildByName('array')).getValue(),
     ).toEqual([]);
     expect(
       assertDefined(propertyRoot.getChildByName('number_32bit')).getValue(),
-    ).toEqual(0);
+    ).toBe(0);
     expect(
       assertDefined(propertyRoot.getChildByName('number_64bit')).getValue(),
-    ).toEqual(0n);
+    ).toBe(0n);
     expect(
       assertDefined(propertyRoot.getChildByName('boolValue')).getValue(),
     ).toBeFalse();
@@ -76,7 +76,7 @@
     ]);
     operation.apply(propertyRoot);
 
-    expect(propertyRoot.getAllChildren().length).toEqual(9);
+    expect(propertyRoot.getAllChildren().length).toBe(9);
     checkAllNodesAreDefault(propertyRoot);
     expect(propertyRoot.getChildByName('number_32bit')).toBeUndefined();
     expect(propertyRoot.getChildByName('number_64bit')).toBeUndefined();
@@ -92,11 +92,11 @@
       .build();
     operation.apply(propertyRoot);
 
-    expect(propertyRoot.getAllChildren().length).toEqual(1);
+    expect(propertyRoot.getAllChildren().length).toBe(1);
     const defaultNode = assertDefined(
       propertyRoot.getChildByName('number_32bit'),
     );
-    expect(defaultNode.getValue()).toEqual(0);
+    expect(defaultNode.getValue()).toBe(0);
     checkAllNodesAreDefault(propertyRoot);
   });
 
diff --git a/tools/winscope/src/parsers/operations/set_formatters_test.ts b/tools/winscope/src/parsers/operations/set_formatters_test.ts
index 1880f41..6a84bdd 100644
--- a/tools/winscope/src/parsers/operations/set_formatters_test.ts
+++ b/tools/winscope/src/parsers/operations/set_formatters_test.ts
@@ -57,7 +57,7 @@
     operation = new SetFormatters(field);
     operation.apply(propertyRoot);
 
-    expect(propertyRoot.formattedValue()).toEqual('');
+    expect(propertyRoot.formattedValue()).toBe('');
     expect(propertyRoot.getChildByName('enum0')?.formattedValue()).toEqual(
       'ENUM0_VALUE_ZERO',
     );
@@ -72,7 +72,7 @@
     propertyRoot.addOrReplaceChild(makeColorNode(-1, -1, -1, 1));
     operation.apply(propertyRoot);
 
-    expect(propertyRoot.formattedValue()).toEqual('');
+    expect(propertyRoot.formattedValue()).toBe('');
     expect(
       assertDefined(propertyRoot.getChildByName('color')).formattedValue(),
     ).toEqual(`${EMPTY_OBJ_STRING}, alpha: 1`);
@@ -87,7 +87,7 @@
     propertyRoot.addOrReplaceChild(makeColorNode(0, 0, 0, undefined));
     operation.apply(propertyRoot);
 
-    expect(propertyRoot.formattedValue()).toEqual('');
+    expect(propertyRoot.formattedValue()).toBe('');
     expect(
       assertDefined(propertyRoot.getChildByName('color')).formattedValue(),
     ).toEqual(`(0, 0, 0)`);
@@ -102,10 +102,10 @@
     propertyRoot.addOrReplaceChild(makeRectNode(0, 0, 1, 1));
     operation.apply(propertyRoot);
 
-    expect(propertyRoot.formattedValue()).toEqual('');
+    expect(propertyRoot.formattedValue()).toBe('');
     expect(
       assertDefined(propertyRoot.getChildByName('rect')).formattedValue(),
-    ).toEqual('(0, 0) - (1, 1)');
+    ).toBe('(0, 0) - (1, 1)');
   });
 
   it('adds correct formatter for buffer node', () => {
@@ -117,10 +117,10 @@
     propertyRoot.addOrReplaceChild(makeBufferNode());
     operation.apply(propertyRoot);
 
-    expect(propertyRoot.formattedValue()).toEqual('');
+    expect(propertyRoot.formattedValue()).toBe('');
     expect(
       assertDefined(propertyRoot.getChildByName('buffer')).formattedValue(),
-    ).toEqual('w: 1, h: 0, stride: 0, format: 1');
+    ).toBe('w: 1, h: 0, stride: 0, format: 1');
   });
 
   it('adds correct formatter for size node', () => {
@@ -132,10 +132,10 @@
     propertyRoot.addOrReplaceChild(makeSizeNode(1, 2));
     operation.apply(propertyRoot);
 
-    expect(propertyRoot.formattedValue()).toEqual('');
+    expect(propertyRoot.formattedValue()).toBe('');
     expect(
       assertDefined(propertyRoot.getChildByName('size')).formattedValue(),
-    ).toEqual('1 x 2');
+    ).toBe('1 x 2');
   });
 
   it('adds correct formatter for region node', () => {
@@ -170,10 +170,10 @@
       .build();
     operation.apply(propertyRoot);
 
-    expect(propertyRoot.formattedValue()).toEqual('');
+    expect(propertyRoot.formattedValue()).toBe('');
     expect(
       assertDefined(propertyRoot.getChildByName('region')).formattedValue(),
-    ).toEqual('SkRegion((0, 0, 1, 1))');
+    ).toBe('SkRegion((0, 0, 1, 1))');
   });
 
   it('adds correct formatter for position node', () => {
@@ -185,10 +185,10 @@
     propertyRoot.addOrReplaceChild(makePositionNode(1, 2));
     operation.apply(propertyRoot);
 
-    expect(propertyRoot.formattedValue()).toEqual('');
+    expect(propertyRoot.formattedValue()).toBe('');
     expect(
       assertDefined(propertyRoot.getChildByName('pos')).formattedValue(),
-    ).toEqual('x: 1, y: 2');
+    ).toBe('x: 1, y: 2');
   });
 
   it('adds correct formatter for transform node', () => {
@@ -200,10 +200,10 @@
     propertyRoot.addOrReplaceChild(makeTransformNode(TransformTypeFlags.EMPTY));
     operation.apply(propertyRoot);
 
-    expect(propertyRoot.formattedValue()).toEqual('');
+    expect(propertyRoot.formattedValue()).toBe('');
     expect(
       assertDefined(propertyRoot.getChildByName('transform')).formattedValue(),
-    ).toEqual('IDENTITY');
+    ).toBe('IDENTITY');
   });
 
   it('does not add formatter to unrecognised nested property', () => {
@@ -218,16 +218,16 @@
 
     operation.apply(propertyRoot);
 
-    expect(propertyRoot.formattedValue()).toEqual('');
+    expect(propertyRoot.formattedValue()).toBe('');
     const propertyWithFormatters = assertDefined(
       propertyRoot.getChildByName('nestedProperty'),
     );
-    expect(propertyWithFormatters.formattedValue()).toEqual('');
+    expect(propertyWithFormatters.formattedValue()).toBe('');
     expect(
       assertDefined(
         propertyWithFormatters.getChildByName('val'),
       ).formattedValue(),
-    ).toEqual('1');
+    ).toBe('1');
   });
 
   it('adds correct formatter for simple leaf property', () => {
@@ -240,10 +240,10 @@
 
     operation.apply(propertyRoot);
 
-    expect(propertyRoot.formattedValue()).toEqual('');
+    expect(propertyRoot.formattedValue()).toBe('');
     expect(
       assertDefined(propertyRoot.getChildByName('val')).formattedValue(),
-    ).toEqual('1');
+    ).toBe('1');
   });
 
   it('adds custom formatter', () => {
@@ -259,10 +259,10 @@
     );
     operation.apply(propertyRoot);
 
-    expect(propertyRoot.formattedValue()).toEqual('');
+    expect(propertyRoot.formattedValue()).toBe('');
     expect(
       assertDefined(propertyRoot.getChildByName('layerId')).formattedValue(),
-    ).toEqual('none');
+    ).toBe('none');
   });
 
   it('adds correct formatter for timestamp node', () => {
@@ -275,6 +275,6 @@
       ])
       .build();
     operation.apply(propertyRoot);
-    expect(propertyRoot.getChildByName('ts')?.formattedValue()).toEqual('10ns');
+    expect(propertyRoot.getChildByName('ts')?.formattedValue()).toBe('10ns');
   });
 });
diff --git a/tools/winscope/src/parsers/perfetto/abstract_parser_test.ts b/tools/winscope/src/parsers/perfetto/abstract_parser_test.ts
index 7f1181c..6d56c5f 100644
--- a/tools/winscope/src/parsers/perfetto/abstract_parser_test.ts
+++ b/tools/winscope/src/parsers/perfetto/abstract_parser_test.ts
@@ -21,7 +21,7 @@
     const parsers = await getPerfettoParsers(
       'invalid_files/no_winscope_traces.perfetto-trace',
     );
-    expect(parsers.length).toEqual(0);
+    expect(parsers.length).toBe(0);
   });
 
   it('robust to non-perfetto file', async () => {
@@ -30,7 +30,7 @@
       false,
       false,
     );
-    expect(parsers.length).toEqual(0);
+    expect(parsers.length).toBe(0);
   });
 
   it('has expected descriptors', async () => {
diff --git a/tools/winscope/src/parsers/perfetto/fake_proto_builder_test.ts b/tools/winscope/src/parsers/perfetto/fake_proto_builder_test.ts
index 2d3893b..6e36241 100644
--- a/tools/winscope/src/parsers/perfetto/fake_proto_builder_test.ts
+++ b/tools/winscope/src/parsers/perfetto/fake_proto_builder_test.ts
@@ -38,22 +38,22 @@
   it('number', () => {
     const args = [makeArg('a', 1), makeArg('b', 10)];
     const proto = buildFakeProto(args);
-    expect(proto.a).toEqual(1);
-    expect(proto.b).toEqual(10);
+    expect(proto.a).toBe(1);
+    expect(proto.b).toBe(10);
   });
 
   it('bigint', () => {
     const args = [makeArg('a', 1n), makeArg('b', 10n)];
     const proto = buildFakeProto(args);
-    expect(proto.a).toEqual(1n);
-    expect(proto.b).toEqual(10n);
+    expect(proto.a).toBe(1n);
+    expect(proto.b).toBe(10n);
   });
 
   it('string', () => {
     const args = [makeArg('a', 'valuea'), makeArg('b', 'valueb')];
     const proto = buildFakeProto(args);
-    expect(proto.a).toEqual('valuea');
-    expect(proto.b).toEqual('valueb');
+    expect(proto.a).toBe('valuea');
+    expect(proto.b).toBe('valueb');
   });
 
   it('array', () => {
@@ -78,11 +78,11 @@
     ];
     const proto = buildFakeProto(args);
     expect(proto.a.b).toEqual(false);
-    expect(proto.a.numbers[0]).toEqual(10);
-    expect(proto.a.numbers[1]).toEqual(11);
-    expect(proto.a.objects[0].c.d).toEqual('20');
-    expect(proto.a.objects[0].c.e).toEqual('21');
-    expect(proto.a.objects[1].c).toEqual(21n);
+    expect(proto.a.numbers[0]).toBe(10);
+    expect(proto.a.numbers[1]).toBe(11);
+    expect(proto.a.objects[0].c.d).toBe('20');
+    expect(proto.a.objects[0].c.e).toBe('21');
+    expect(proto.a.objects[1].c).toBe(21n);
   });
 
   it('converts snake_case to camelCase', () => {
@@ -100,11 +100,11 @@
       TamperedMessageType.tamper(root.lookupType('Entry')),
     ).transform(proto);
 
-    expect(transformed._case_64bit).toEqual(10n);
-    expect(transformed.case_64bit).toEqual(11n);
-    expect(transformed.case_64bitLsb).toEqual(12n);
-    expect(transformed.case_64Bit).toEqual(13n);
-    expect(transformed.case_64BitLsb).toEqual(14n);
+    expect(transformed._case_64bit).toBe(10n);
+    expect(transformed.case_64bit).toBe(11n);
+    expect(transformed.case_64bitLsb).toBe(12n);
+    expect(transformed.case_64Bit).toBe(13n);
+    expect(transformed.case_64BitLsb).toBe(14n);
   });
 
   const makeArg = (
diff --git a/tools/winscope/src/parsers/perfetto/fake_proto_transformer_test.ts b/tools/winscope/src/parsers/perfetto/fake_proto_transformer_test.ts
index 28166c2..262432f 100644
--- a/tools/winscope/src/parsers/perfetto/fake_proto_transformer_test.ts
+++ b/tools/winscope/src/parsers/perfetto/fake_proto_transformer_test.ts
@@ -39,8 +39,8 @@
       enum1: 1n,
     };
     const transformed = transformer.transform(proto);
-    expect(transformed.enum0).toEqual(1);
-    expect(transformed.enum1).toEqual(1);
+    expect(transformed.enum0).toBe(1);
+    expect(transformed.enum1).toBe(1);
   });
 
   it('converts fields to number if 32-bits type', () => {
@@ -48,7 +48,7 @@
       number_32bit: 32n,
     };
     const transformed = transformer.transform(proto);
-    expect(transformed.number_32bit).toEqual(32);
+    expect(transformed.number_32bit).toBe(32);
   });
 
   it('converts fields to bigint if 64-bits type', () => {
@@ -56,6 +56,6 @@
       number_64bit: 64,
     };
     const transformed = transformer.transform(proto);
-    expect(transformed.number_64bit).toEqual(64n);
+    expect(transformed.number_64bit).toBe(64n);
   });
 });
diff --git a/tools/winscope/src/parsers/property_tree_builder_from_proto_test.ts b/tools/winscope/src/parsers/property_tree_builder_from_proto_test.ts
index c3dad3e..0be8943 100644
--- a/tools/winscope/src/parsers/property_tree_builder_from_proto_test.ts
+++ b/tools/winscope/src/parsers/property_tree_builder_from_proto_test.ts
@@ -232,7 +232,7 @@
       .setData(proto)
       .setDenyList(['children', 'timestamp'])
       .build();
-    expect(tree.getAllChildren().length).toEqual(2);
+    expect(tree.getAllChildren().length).toBe(2);
 
     expect(tree.getChildByName('id')).toBeDefined();
     expect(tree.getChildByName('timestamp')).toBeUndefined();
diff --git a/tools/winscope/src/parsers/protolog/legacy/parser_protolog_test.ts b/tools/winscope/src/parsers/protolog/legacy/parser_protolog_test.ts
index 2e87f74..8c2676b 100644
--- a/tools/winscope/src/parsers/protolog/legacy/parser_protolog_test.ts
+++ b/tools/winscope/src/parsers/protolog/legacy/parser_protolog_test.ts
@@ -135,7 +135,7 @@
           this.expectedConfig,
         );
         expect(viewerConfigPacket.trustedUid).toEqual(trustedUid);
-        expect(viewerConfigPacket.trustedPid).toEqual(0);
+        expect(viewerConfigPacket.trustedPid).toBe(0);
         expect(viewerConfigPacket.internedData).toBeNull();
         expect(viewerConfigPacket.protologMessage).toBeNull();
 
diff --git a/tools/winscope/src/parsers/protolog/perfetto/parser_protolog_test.ts b/tools/winscope/src/parsers/protolog/perfetto/parser_protolog_test.ts
index 4a8fb2a..5f43088 100644
--- a/tools/winscope/src/parsers/protolog/perfetto/parser_protolog_test.ts
+++ b/tools/winscope/src/parsers/protolog/perfetto/parser_protolog_test.ts
@@ -44,7 +44,7 @@
   it('provides timestamps', () => {
     const timestamps = assertDefined(parser.getTimestamps());
 
-    expect(timestamps.length).toEqual(3);
+    expect(timestamps.length).toBe(3);
 
     const expected = [
       TimestampConverterUtils.makeRealTimestamp(1713866817780323315n),
@@ -56,7 +56,7 @@
 
   it('retrieves all entries', async () => {
     const entries = await parser.getAllEntries();
-    expect(entries.length).toEqual(3);
+    expect(entries.length).toBe(3);
     expect(entries.every((entry) => entry !== undefined)).toBeTrue();
   });
 
@@ -65,23 +65,23 @@
 
     expect(
       assertDefined(message.getEagerPropertyByName('message')).formattedValue(),
-    ).toEqual(
+    ).toBe(
       'Test message with different int formats: 888, 0o1570, 0x378, 888.000000, 8.880000e+02.',
     );
     expect(
       assertDefined(message.getEagerPropertyByName('ts')).formattedValue(),
-    ).toEqual('2024-04-23, 10:06:57.780');
+    ).toBe('2024-04-23, 10:06:57.780');
     expect(
       assertDefined(message.getEagerPropertyByName('tag')).formattedValue(),
-    ).toEqual('MySecondGroup');
+    ).toBe('MySecondGroup');
     expect(
       assertDefined(message.getEagerPropertyByName('level')).formattedValue(),
-    ).toEqual('WARN');
+    ).toBe('WARN');
     expect(
       assertDefined(
         message.getEagerPropertyByName('location'),
       ).formattedValue(),
-    ).toEqual('file1');
+    ).toBe('file1');
 
     const message2 = await parser.getEntry(1);
     expect(message2.getEagerPropertyByName('location')).toBeUndefined();
diff --git a/tools/winscope/src/parsers/screen_recording/parser_screen_recording_legacy_test.ts b/tools/winscope/src/parsers/screen_recording/parser_screen_recording_legacy_test.ts
index 7315a75..7095f1a 100644
--- a/tools/winscope/src/parsers/screen_recording/parser_screen_recording_legacy_test.ts
+++ b/tools/winscope/src/parsers/screen_recording/parser_screen_recording_legacy_test.ts
@@ -42,7 +42,7 @@
   it('provides timestamps', () => {
     const timestamps = assertDefined(parser.getTimestamps());
 
-    expect(timestamps.length).toEqual(85);
+    expect(timestamps.length).toBe(85);
 
     let expected = [
       TimestampConverterUtils.makeElapsedTimestamp(19446131807000n),
diff --git a/tools/winscope/src/parsers/screen_recording/parser_screen_recording_test.ts b/tools/winscope/src/parsers/screen_recording/parser_screen_recording_test.ts
index aecb8a0..75739bd 100644
--- a/tools/winscope/src/parsers/screen_recording/parser_screen_recording_test.ts
+++ b/tools/winscope/src/parsers/screen_recording/parser_screen_recording_test.ts
@@ -49,7 +49,7 @@
     it('provides timestamps', () => {
       const timestamps = assertDefined(parser.getTimestamps());
 
-      expect(timestamps.length).toEqual(123);
+      expect(timestamps.length).toBe(123);
 
       const expected = [
         TimestampConverterUtils.makeRealTimestamp(1666361048792787045n),
@@ -93,7 +93,7 @@
 
     it('provides timestamps', () => {
       const timestamps = assertDefined(parser.getTimestamps());
-      expect(timestamps.length).toEqual(105);
+      expect(timestamps.length).toBe(105);
       const expected = [
         TimestampConverterUtils.makeRealTimestamp(1755862820270527000n),
         TimestampConverterUtils.makeRealTimestamp(1755862820414660000n),
@@ -142,16 +142,16 @@
           'traces/elapsed_and_real_timestamp/screen_recording_no_metadata.mp4',
         )
         .getParsers();
-      expect(parsers.length).toEqual(0);
+      expect(parsers.length).toBe(0);
     });
 
     it('sets real to boot time offset', () => {
-      expect(parser.getRealToBootTimeOffsetNs()).toEqual(10n);
+      expect(parser.getRealToBootTimeOffsetNs()).toBe(10n);
     });
 
     it('provides timestamps', () => {
       const timestamps = assertDefined(parser.getTimestamps());
-      expect(timestamps.length).toEqual(158);
+      expect(timestamps.length).toBe(158);
 
       const totalOffset = elapsedNs + realtoElapsedNs;
       const expected = [
@@ -251,12 +251,12 @@
       });
 
       it('sets real to boot time offset', () => {
-        expect(parser.getRealToBootTimeOffsetNs()).toEqual(0n);
+        expect(parser.getRealToBootTimeOffsetNs()).toBe(0n);
       });
 
       it('provides timestamps', () => {
         const timestamps = assertDefined(parser.getTimestamps());
-        expect(timestamps.length).toEqual(158);
+        expect(timestamps.length).toBe(158);
 
         const expected = [
           TimestampConverterUtils.makeRealTimestamp(599300000n + startTimeNs),
@@ -287,7 +287,7 @@
           filename,
         )
         .getParsers();
-      expect(parsers.length).toEqual(0);
+      expect(parsers.length).toBe(0);
     }
   });
 });
diff --git a/tools/winscope/src/parsers/search/parser_search_test.ts b/tools/winscope/src/parsers/search/parser_search_test.ts
index 32aff1d..aa85010 100644
--- a/tools/winscope/src/parsers/search/parser_search_test.ts
+++ b/tools/winscope/src/parsers/search/parser_search_test.ts
@@ -67,7 +67,7 @@
     });
 
     it('has length entries equal to number of rows', () => {
-      expect(parser.getLengthEntries()).toEqual(21);
+      expect(parser.getLengthEntries()).toBe(21);
     });
 
     it('provides timestamps', () => {
@@ -83,10 +83,10 @@
 
     it('provides query result', async () => {
       const entry = await parser.getEntry(0);
-      expect(entry.numRows()).toEqual(21);
+      expect(entry.numRows()).toBe(21);
       const firstRow = entry.iter({});
-      expect(firstRow.get('id')).toEqual(0n);
-      expect(firstRow.get('ts')).toEqual(14500282843n);
+      expect(firstRow.get('id')).toBe(0n);
+      expect(firstRow.get('ts')).toBe(14500282843n);
     });
   });
 
@@ -101,7 +101,7 @@
     });
 
     it('has length entries equal to 1 so query result can be accessed', () => {
-      expect(parser.getLengthEntries()).toEqual(1);
+      expect(parser.getLengthEntries()).toBe(1);
     });
 
     it('provides one invalid timestamp so query result can be accessed', () => {
@@ -112,11 +112,11 @@
 
     it('provides query result', async () => {
       const entry = await parser.getEntry(0);
-      expect(entry.numRows()).toEqual(1815);
+      expect(entry.numRows()).toBe(1815);
       const firstRow = entry.iter({});
-      expect(firstRow.get('id')).toEqual(0n);
-      expect(firstRow.get('snapshot_id')).toEqual(0n);
-      expect(firstRow.get('layer_id')).toEqual(3n);
+      expect(firstRow.get('id')).toBe(0n);
+      expect(firstRow.get('snapshot_id')).toBe(0n);
+      expect(firstRow.get('layer_id')).toBe(3n);
     });
   });
 
@@ -130,7 +130,7 @@
     });
 
     it('has length entries equal to 1 so query result can be accessed', () => {
-      expect(parser.getLengthEntries()).toEqual(1);
+      expect(parser.getLengthEntries()).toBe(1);
     });
 
     it('provides one invalid timestamp so query result can be accessed', () => {
@@ -148,7 +148,7 @@
         'base64_proto_id',
         'vsync_id',
       ]);
-      expect(entry.numRows()).toEqual(0);
+      expect(entry.numRows()).toBe(0);
     });
   });
 
diff --git a/tools/winscope/src/parsers/surface_flinger/entry_hierarchy_tree_factory_test.ts b/tools/winscope/src/parsers/surface_flinger/entry_hierarchy_tree_factory_test.ts
index f638db0..9678f57 100644
--- a/tools/winscope/src/parsers/surface_flinger/entry_hierarchy_tree_factory_test.ts
+++ b/tools/winscope/src/parsers/surface_flinger/entry_hierarchy_tree_factory_test.ts
@@ -260,7 +260,7 @@
         createMapWithoutLayerRects(defaultSnapshotId),
       );
 
-      expect(tree.getAllChildren().length).toEqual(1);
+      expect(tree.getAllChildren().length).toBe(1);
       expect(tree.getChildByName('LayerWithMissingId')).toBeUndefined();
       expect(tree.getChildByName(layerName1)).toBeDefined();
       expect(tree.getWarnings()).toEqual([new MissingLayerIds()]);
@@ -280,7 +280,7 @@
       const tree = makeEntryHierarchyTree(
         createMapWithoutLayerRects(defaultSnapshotId),
       );
-      expect(tree.getAllChildren().length).toEqual(2);
+      expect(tree.getAllChildren().length).toBe(2);
       expect(tree.getChildByName(layerName1)).toBeDefined();
       expect(tree.getChildByName(layerName1 + ' duplicate(1)')).toBeDefined();
       expect(tree.getWarnings()).toEqual([new DuplicateLayerIds([1])]);
diff --git a/tools/winscope/src/parsers/surface_flinger/hierarchy_tree_builder_sf_test.ts b/tools/winscope/src/parsers/surface_flinger/hierarchy_tree_builder_sf_test.ts
index f350c2d..16d28f5 100644
--- a/tools/winscope/src/parsers/surface_flinger/hierarchy_tree_builder_sf_test.ts
+++ b/tools/winscope/src/parsers/surface_flinger/hierarchy_tree_builder_sf_test.ts
@@ -174,14 +174,14 @@
     const recursiveRootProps = assertDefined(
       await root.getChildByName(expRecurRootProps.name)?.getAllProperties(),
     );
-    expect(recursiveRootProps.getAllChildren().length).toEqual(2);
+    expect(recursiveRootProps.getAllChildren().length).toBe(2);
 
     const recursiveRootId = assertDefined(
       recursiveRootProps.getChildByName('layerId'),
     );
-    expect(recursiveRootId.getValue()).toEqual(2n);
-    expect(recursiveRootId.formattedValue()).toEqual('2');
-    expect(recursiveRootProps.getChildByName('detail')?.getValue()).toEqual(
+    expect(recursiveRootId.getValue()).toBe(2n);
+    expect(recursiveRootId.formattedValue()).toBe('2');
+    expect(recursiveRootProps.getChildByName('detail')?.getValue()).toBe(
       'This node was artificially created by Winscope as a parent for all recursive layers',
     );
   });
diff --git a/tools/winscope/src/parsers/surface_flinger/legacy/parser_surface_flinger_dump_test.ts b/tools/winscope/src/parsers/surface_flinger/legacy/parser_surface_flinger_dump_test.ts
index 0993716..8f60641 100644
--- a/tools/winscope/src/parsers/surface_flinger/legacy/parser_surface_flinger_dump_test.ts
+++ b/tools/winscope/src/parsers/surface_flinger/legacy/parser_surface_flinger_dump_test.ts
@@ -80,15 +80,15 @@
 
     it('converts to valid perfetto packets', async () => {
       const packets = parser.convertToPerfettoPackets!(10);
-      expect(packets.length).toEqual(1);
+      expect(packets.length).toBe(1);
       expect(packets[0].timestamp).toEqual(Long.fromInt(0));
       expect(packets[0].timestampClockId).toEqual(
         perfetto.protos.ClockSnapshot.Clock.BuiltinClocks.MONOTONIC,
       );
-      expect(packets[0].trustedPacketSequenceId).toEqual(10);
+      expect(packets[0].trustedPacketSequenceId).toBe(10);
       expect(
         packets[0].surfaceflingerLayersSnapshot?.layers?.layers?.length,
-      ).toEqual(94);
+      ).toBe(94);
     });
 
     it('converts to valid perfetto trace', async () => {
@@ -123,15 +123,15 @@
 
     it('converts to valid perfetto packets', async () => {
       const packets = parser.convertToPerfettoPackets!(10);
-      expect(packets.length).toEqual(1);
+      expect(packets.length).toBe(1);
       expect(packets[0].timestamp).toEqual(Long.fromInt(0));
       expect(packets[0].timestampClockId).toEqual(
         perfetto.protos.ClockSnapshot.Clock.BuiltinClocks.MONOTONIC,
       );
-      expect(packets[0].trustedPacketSequenceId).toEqual(10);
+      expect(packets[0].trustedPacketSequenceId).toBe(10);
       expect(
         packets[0].surfaceflingerLayersSnapshot?.layers?.layers?.length,
-      ).toEqual(91);
+      ).toBe(91);
     });
 
     it('does not provide entry', () => {
diff --git a/tools/winscope/src/parsers/surface_flinger/legacy/parser_surface_flinger_test.ts b/tools/winscope/src/parsers/surface_flinger/legacy/parser_surface_flinger_test.ts
index ddabf16..87b7f63 100644
--- a/tools/winscope/src/parsers/surface_flinger/legacy/parser_surface_flinger_test.ts
+++ b/tools/winscope/src/parsers/surface_flinger/legacy/parser_surface_flinger_test.ts
@@ -79,11 +79,11 @@
 
     it('converts to valid perfetto packets', async () => {
       const packets = realParser.convertToPerfettoPackets!(10);
-      expect(packets.length).toEqual(21);
-      expect(packets[0].trustedPacketSequenceId).toEqual(10);
+      expect(packets.length).toBe(21);
+      expect(packets[0].trustedPacketSequenceId).toBe(10);
       expect(
         packets[0].surfaceflingerLayersSnapshot?.layers?.layers?.length,
-      ).toEqual(83);
+      ).toBe(83);
       expect(packets[0].timestamp).toEqual(
         Long.fromString(BigInt(14500282843).toString()),
       );
@@ -123,12 +123,12 @@
         const layer = assertDefined(
           entry.findDfs(makeIdMatchFilter('48 Task=4#48')),
         );
-        expect(layer.name).toEqual('Task=4#48');
+        expect(layer.name).toBe('Task=4#48');
 
         const props = await layer.getAllProperties();
         expect(
           assertDefined(props.getChildByName('flags')).formattedValue(),
-        ).toEqual('HIDDEN (0x1)');
+        ).toBe('HIDDEN (0x1)');
       });
 
       it('supports VSYNCID custom query', async () => {
@@ -174,7 +174,7 @@
         expect(layer.name).toEqual(
           'Input Consumer recents_animation_input_consumer#408(Mirror)',
         );
-        expect(layer.getAllChildren().length).toEqual(0);
+        expect(layer.getAllChildren().length).toBe(0);
 
         const dupLayer = assertDefined(
           entry.findDfs(
@@ -187,7 +187,7 @@
         expect(dupLayer.name).toEqual(
           'Input Consumer recents_animation_input_consumer#408(Mirror) duplicate(1)',
         );
-        expect(dupLayer.getAllChildren().length).toEqual(0);
+        expect(dupLayer.getAllChildren().length).toBe(0);
       });
     });
   });
@@ -217,11 +217,11 @@
 
     it('converts to valid perfetto packets, without latest offsets', async () => {
       const packets = elapsedParser.convertToPerfettoPackets!(10);
-      expect(packets.length).toEqual(3);
-      expect(packets[0].trustedPacketSequenceId).toEqual(10);
+      expect(packets.length).toBe(3);
+      expect(packets[0].trustedPacketSequenceId).toBe(10);
       expect(
         packets[0].surfaceflingerLayersSnapshot?.layers?.layers?.length,
-      ).toEqual(94);
+      ).toBe(94);
       expect(packets[0].timestamp).toEqual(
         Long.fromString(BigInt(850335483446).toString()),
       );
diff --git a/tools/winscope/src/parsers/surface_flinger/perfetto/parser_surface_flinger_test.ts b/tools/winscope/src/parsers/surface_flinger/perfetto/parser_surface_flinger_test.ts
index ddd188f..94b264f 100644
--- a/tools/winscope/src/parsers/surface_flinger/perfetto/parser_surface_flinger_test.ts
+++ b/tools/winscope/src/parsers/surface_flinger/perfetto/parser_surface_flinger_test.ts
@@ -81,8 +81,8 @@
 
     it('provides correct root entry node', async () => {
       const entry = await parser.getEntry(1);
-      expect(entry.id).toEqual('LayerTraceEntry root');
-      expect(entry.name).toEqual('root');
+      expect(entry.id).toBe('LayerTraceEntry root');
+      expect(entry.name).toBe('root');
     });
 
     it('gets a range of entries that excludes the end index', async () => {
@@ -109,7 +109,7 @@
       expect(
         leaf.getEagerPropertyByName('isMissingZParent')?.getValue(),
       ).toBeFalse();
-      expect(leaf.getParent()?.name).toEqual('WindowedMagnification:0:31#4');
+      expect(leaf.getParent()?.name).toBe('WindowedMagnification:0:31#4');
 
       const task = assertDefined(
         entry.findDfs(makeIdMatchFilter('45 Task=1#45')),
@@ -129,13 +129,13 @@
       expect(relZChild.getZParent()).toEqual(relZParent);
       expect(
         relZChild.getEagerPropertyByName('zOrderRelativeOf')?.getValue(),
-      ).toEqual(11n);
+      ).toBe(11n);
     });
 
     it('provides rects', async () => {
       const entry = await parser.getEntry(0);
       const displays = entry.getRects();
-      expect(displays?.length).toEqual(1);
+      expect(displays?.length).toBe(1);
       expect(displays?.[0].isDisplay).toBeTrue();
 
       const overlay = assertDefined(
@@ -143,14 +143,14 @@
       );
       const layerRect = assertDefined(overlay.getRects()?.[0]);
       expect(layerRect.isDisplay).toBeFalse();
-      expect(layerRect.w).toEqual(1080);
-      expect(layerRect.h).toEqual(118);
+      expect(layerRect.w).toBe(1080);
+      expect(layerRect.h).toBe(118);
       expect(layerRect.fillRegion).toBeUndefined();
 
       const inputRect = assertDefined(overlay.getSecondaryRects()?.[0]);
       expect(inputRect.isDisplay).toBeFalse();
-      expect(inputRect.w).toEqual(1080);
-      expect(inputRect.h).toEqual(118);
+      expect(inputRect.w).toBe(1080);
+      expect(inputRect.h).toBe(118);
       expect(inputRect.fillRegion).toEqual(
         new Region([new Rect(492, 0, 124, 118)]),
       );
@@ -162,34 +162,34 @@
         const layer = assertDefined(
           entry.findDfs(makeIdMatchFilter('27 Leaf:24:25#27')),
         );
-        expect(layer.name).toEqual('Leaf:24:25#27');
+        expect(layer.name).toBe('Leaf:24:25#27');
 
         const props = await layer.getAllProperties();
         expect(
           assertDefined(props.getChildByName('flags')).formattedValue(),
-        ).toEqual('0');
+        ).toBe('0');
       }
       {
         const layer = assertDefined(
           entry.findDfs(makeIdMatchFilter('48 Task=4#48')),
         );
-        expect(layer.name).toEqual('Task=4#48');
+        expect(layer.name).toBe('Task=4#48');
 
         const props = await layer.getAllProperties();
         expect(
           assertDefined(props.getChildByName('flags')).formattedValue(),
-        ).toEqual('HIDDEN (0x1)');
+        ).toBe('HIDDEN (0x1)');
       }
       {
         const layer = assertDefined(
           entry.findDfs(makeIdMatchFilter('77 Wallpaper BBQ wrapper#77')),
         );
-        expect(layer.name).toEqual('Wallpaper BBQ wrapper#77');
+        expect(layer.name).toBe('Wallpaper BBQ wrapper#77');
 
         const props = await layer.getAllProperties();
         expect(
           assertDefined(props.getChildByName('flags')).formattedValue(),
-        ).toEqual('ENABLE_BACKPRESSURE (0x100)');
+        ).toBe('ENABLE_BACKPRESSURE (0x100)');
       }
     });
 
@@ -234,7 +234,7 @@
       expect(layer.name).toEqual(
         'Input Consumer recents_animation_input_consumer#408(Mirror)',
       );
-      expect(layer.getAllChildren().length).toEqual(0);
+      expect(layer.getAllChildren().length).toBe(0);
 
       const dupLayer = assertDefined(
         entry.findDfs(
@@ -246,7 +246,7 @@
       expect(dupLayer.name).toEqual(
         'Input Consumer recents_animation_input_consumer#408(Mirror) duplicate(1)',
       );
-      expect(dupLayer.getAllChildren().length).toEqual(0);
+      expect(dupLayer.getAllChildren().length).toBe(0);
     });
   });
 });
diff --git a/tools/winscope/src/parsers/transactions/legacy/parser_transactions_test.ts b/tools/winscope/src/parsers/transactions/legacy/parser_transactions_test.ts
index c5747f6..bca5a70 100644
--- a/tools/winscope/src/parsers/transactions/legacy/parser_transactions_test.ts
+++ b/tools/winscope/src/parsers/transactions/legacy/parser_transactions_test.ts
@@ -50,7 +50,7 @@
     it('provides timestamps', () => {
       const timestamps = assertDefined(parser.getTimestamps());
 
-      expect(timestamps.length).toEqual(712);
+      expect(timestamps.length).toBe(712);
 
       const expected = [
         TimestampConverterUtils.makeRealTimestamp(1659507541051480997n),
@@ -66,11 +66,11 @@
 
     it('converts to valid perfetto packets', async () => {
       const packets = parser.convertToPerfettoPackets!(10);
-      expect(packets.length).toEqual(712);
-      expect(packets[0].trustedPacketSequenceId).toEqual(10);
-      expect(
-        packets[0].surfaceflingerTransactions?.transactions?.length,
-      ).toEqual(2);
+      expect(packets.length).toBe(712);
+      expect(packets[0].trustedPacketSequenceId).toBe(10);
+      expect(packets[0].surfaceflingerTransactions?.transactions?.length).toBe(
+        2,
+      );
       expect(packets[0].timestamp).toEqual(
         Long.fromString(BigInt(2450981445).toString()),
       );
@@ -92,7 +92,7 @@
       it('provides timestamps', () => {
         const timestamps = assertDefined(perfettoParser.getTimestamps());
 
-        expect(timestamps.length).toEqual(712);
+        expect(timestamps.length).toBe(712);
 
         const expected = [
           TimestampConverterUtils.makeRealTimestamp(1659507541051480997n),
@@ -111,13 +111,13 @@
               .slice(0, 2)
               .map((child) => child.getAllProperties()),
           );
-          expect(transaction0.getChildByName('what')?.formattedValue()).toEqual(
+          expect(transaction0.getChildByName('what')?.formattedValue()).toBe(
             'eLayerChanged',
           );
 
-          expect(
-            transaction1?.getChildByName('what')?.formattedValue(),
-          ).toEqual('eFlagsChanged | eDestinationFrameChanged');
+          expect(transaction1?.getChildByName('what')?.formattedValue()).toBe(
+            'eFlagsChanged | eDestinationFrameChanged',
+          );
         }
         {
           // translates upper and lower bits
@@ -125,7 +125,7 @@
           const transaction = await entry
             .getAllChildren()[42]
             .getAllProperties();
-          expect(transaction.getChildByName('what')?.formattedValue()).toEqual(
+          expect(transaction.getChildByName('what')?.formattedValue()).toBe(
             'eLayerStackChanged | eDisplayProjectionChanged | eFlagsChanged',
           );
         }
@@ -161,7 +161,7 @@
     it('provides timestamps', () => {
       const timestamps = assertDefined(parser.getTimestamps());
 
-      expect(timestamps.length).toEqual(4997);
+      expect(timestamps.length).toBe(4997);
 
       const expected = [
         TimestampConverterUtils.makeElapsedTimestamp(14862317023n),
@@ -173,11 +173,11 @@
 
     it('converts to valid perfetto packets', async () => {
       const packets = parser.convertToPerfettoPackets!(10);
-      expect(packets.length).toEqual(4997);
-      expect(packets[0].trustedPacketSequenceId).toEqual(10);
-      expect(
-        packets[0].surfaceflingerTransactions?.transactions?.length,
-      ).toEqual(1);
+      expect(packets.length).toBe(4997);
+      expect(packets[0].trustedPacketSequenceId).toBe(10);
+      expect(packets[0].surfaceflingerTransactions?.transactions?.length).toBe(
+        1,
+      );
       expect(packets[0].timestamp).toEqual(
         Long.fromString(BigInt(14862317023).toString()),
       );
diff --git a/tools/winscope/src/parsers/transactions/perfetto/parser_transactions_test.ts b/tools/winscope/src/parsers/transactions/perfetto/parser_transactions_test.ts
index d55e555..2adf913 100644
--- a/tools/winscope/src/parsers/transactions/perfetto/parser_transactions_test.ts
+++ b/tools/winscope/src/parsers/transactions/perfetto/parser_transactions_test.ts
@@ -52,7 +52,7 @@
   it('provides timestamps', () => {
     const timestamps = assertDefined(parser.getTimestamps());
 
-    expect(timestamps.length).toEqual(712);
+    expect(timestamps.length).toBe(712);
 
     const expected = [
       TimestampConverterUtils.makeRealTimestamp(1659507541051480997n),
@@ -64,13 +64,13 @@
 
   it('retrieves all entries', async () => {
     const entries = await parser.getAllEntries();
-    expect(entries.length).toEqual(712);
+    expect(entries.length).toBe(712);
     expect(entries.every((entry) => entry !== undefined)).toBeTrue();
   });
 
   it('retrieves trace entry', async () => {
     const entry = await parser.getEntry(1);
-    expect(entry.id).toEqual('TransactionsTraceEntry entry');
+    expect(entry.id).toBe('TransactionsTraceEntry entry');
   });
 
   describe('eager property fetching', () => {
@@ -227,15 +227,15 @@
       const layerChange1 = await entry0.getAllChildren()[1].getAllProperties();
 
       // Add default values
-      expect(layerChange1?.getChildByName('alpha')?.getValue()).toEqual(0);
+      expect(layerChange1?.getChildByName('alpha')?.getValue()).toBe(0);
 
       // Convert value types (bigint -> number)
-      expect(layerChange1?.getChildByName('flags')?.getValue()).toEqual(256);
+      expect(layerChange1?.getChildByName('flags')?.getValue()).toBe(256);
 
       // Decode enum IDs
       expect(
         layerChange1?.getChildByName('dropInputMode')?.formattedValue(),
-      ).toEqual('NONE');
+      ).toBe('NONE');
 
       const entry2 = await parser.getEntry(2);
       const layerChange2 = await entry2.getAllChildren()[0].getAllProperties();
@@ -244,7 +244,7 @@
           ?.getChildByName('bufferData')
           ?.getChildByName('pixelFormat')
           ?.formattedValue(),
-      ).toEqual('PIXEL_FORMAT_RGBA_1010102');
+      ).toBe('PIXEL_FORMAT_RGBA_1010102');
     });
 
     it("decodes 'what' field", async () => {
diff --git a/tools/winscope/src/parsers/transitions/legacy/parser_transitions_shell_test.ts b/tools/winscope/src/parsers/transitions/legacy/parser_transitions_shell_test.ts
index 8a36bb6..ef5965f 100644
--- a/tools/winscope/src/parsers/transitions/legacy/parser_transitions_shell_test.ts
+++ b/tools/winscope/src/parsers/transitions/legacy/parser_transitions_shell_test.ts
@@ -59,9 +59,9 @@
 
   it('provides decoded proto', async () => {
     const entry = await parser.getEntry(0);
-    expect(entry.id).toEqual(6);
-    expect(entry.dispatchTimeNs.toString()).toEqual('57649649922341');
-    expect(entry.handler).toEqual(2);
+    expect(entry.id).toBe(6);
+    expect(entry.dispatchTimeNs.toString()).toBe('57649649922341');
+    expect(entry.handler).toBe(2);
   });
 
   it('provides shell mapping', async () => {
@@ -69,13 +69,13 @@
     const mapping = (
       parser as unknown as ParserTransitionsShell
     ).getShellHandlerMapping();
-    expect(mapping.length).toEqual(2);
-    expect(mapping[0].id).toEqual(2);
-    expect(mapping[0].name).toEqual(
+    expect(mapping.length).toBe(2);
+    expect(mapping[0].id).toBe(2);
+    expect(mapping[0].name).toBe(
       'com.android.wm.shell.transition.DefaultMixedHandler',
     );
-    expect(mapping[1].id).toEqual(3);
-    expect(mapping[1].name).toEqual(
+    expect(mapping[1].id).toBe(3);
+    expect(mapping[1].name).toBe(
       'com.android.wm.shell.recents.RecentsTransitionHandler',
     );
   });
diff --git a/tools/winscope/src/parsers/transitions/legacy/parser_transitions_wm_test.ts b/tools/winscope/src/parsers/transitions/legacy/parser_transitions_wm_test.ts
index a33d34d..30d5139 100644
--- a/tools/winscope/src/parsers/transitions/legacy/parser_transitions_wm_test.ts
+++ b/tools/winscope/src/parsers/transitions/legacy/parser_transitions_wm_test.ts
@@ -45,15 +45,15 @@
 
   it('provides timestamps', () => {
     const timestamps = assertDefined(parser.getTimestamps());
-    expect(timestamps.length).toEqual(8);
+    expect(timestamps.length).toBe(8);
     const expected = TimestampConverterUtils.makeZeroTimestamp();
     timestamps.forEach((timestamp) => expect(timestamp).toEqual(expected));
   });
 
   it('provides decoded proto', async () => {
     const entry = await parser.getEntry(0);
-    expect(entry.id).toEqual(6);
-    expect(entry.startTransactionId?.toString()).toEqual('13086765351818');
-    expect(entry.sendTimeNs?.toString()).toEqual('57649646973488');
+    expect(entry.id).toBe(6);
+    expect(entry.startTransactionId?.toString()).toBe('13086765351818');
+    expect(entry.sendTimeNs?.toString()).toBe('57649646973488');
   });
 });
diff --git a/tools/winscope/src/parsers/transitions/legacy/traces_parser_transitions_test.ts b/tools/winscope/src/parsers/transitions/legacy/traces_parser_transitions_test.ts
index 470a121..2407d79 100644
--- a/tools/winscope/src/parsers/transitions/legacy/traces_parser_transitions_test.ts
+++ b/tools/winscope/src/parsers/transitions/legacy/traces_parser_transitions_test.ts
@@ -118,9 +118,9 @@
 
   it('converts to valid perfetto packets', () => {
     const packets = parser.convertToPerfettoPackets!(10);
-    expect(packets.length).toEqual(5);
+    expect(packets.length).toBe(5);
     packets.forEach((packet) => {
-      expect(packet.trustedPacketSequenceId).toEqual(10);
+      expect(packet.trustedPacketSequenceId).toBe(10);
     });
 
     const handlerMappingPacket = packets[0];
@@ -141,7 +141,7 @@
 
     const transition6Packet = packets[1];
     const transition6 = assertDefined(transition6Packet.shellTransition);
-    expect(transition6.id).toEqual(6);
+    expect(transition6.id).toBe(6);
     const dispatchTime6 = Long.fromString('57649649922341');
     expect(transition6Packet.timestamp).toEqual(dispatchTime6);
     expect(transition6Packet.timestampClockId).toEqual(
@@ -151,20 +151,20 @@
     expect(transition6.sendTimeNs).toEqual(Long.fromString('57649646973488'));
     expect(transition6.wmAbortTimeNs).toBeUndefined();
     expect(transition6.finishTimeNs).toEqual(Long.fromString('57650183020323'));
-    expect(transition6.type).toEqual(1);
-    expect(transition6.targets?.length).toEqual(2);
+    expect(transition6.type).toBe(1);
+    expect(transition6.targets?.length).toBe(2);
     expect(transition6.flags).toBeUndefined();
     expect(transition6.startingWindowRemoveTimeNs).toBeUndefined();
     expect(transition6.dispatchTimeNs).toEqual(dispatchTime6);
     expect(transition6.mergeTimeNs).toBeUndefined();
     expect(transition6.mergeRequestTimeNs).toBeUndefined();
     expect(transition6.shellAbortTimeNs).toBeUndefined();
-    expect(transition6.handler).toEqual(2);
+    expect(transition6.handler).toBe(2);
     expect(transition6.mergeTarget).toBeUndefined();
 
     const transition7Packet = packets[2];
     const transition7 = assertDefined(transition7Packet.shellTransition);
-    expect(transition7.id).toEqual(7);
+    expect(transition7.id).toBe(7);
     const sendTime7 = Long.fromString('57649828043313');
     expect(transition7Packet.timestamp).toEqual(sendTime7);
     expect(transition7Packet.timestampClockId).toEqual(
@@ -179,15 +179,15 @@
     expect(transition7.handler).toBeUndefined();
 
     const transition8 = assertDefined(packets[3].shellTransition);
-    expect(transition8.id).toEqual(8);
-    expect(transition8.flags).toEqual(128);
+    expect(transition8.id).toBe(8);
+    expect(transition8.flags).toBe(128);
 
     const transition9 = assertDefined(packets[4].shellTransition);
-    expect(transition9.id).toEqual(9);
+    expect(transition9.id).toBe(9);
     expect(transition9.mergeRequestTimeNs).toEqual(
       Long.fromString('57653389780131'),
     );
-    expect(transition9.mergeTarget).toEqual(8);
+    expect(transition9.mergeTarget).toBe(8);
   });
 
   it('converts to valid perfetto trace', async () => {
@@ -222,9 +222,7 @@
 
     const entry = entries[2];
     const entryProperties = await entry.getAllProperties();
-    expect(entry.getEagerPropertyByName('status')?.getValue()).toEqual(
-      'played',
-    );
+    expect(entry.getEagerPropertyByName('status')?.getValue()).toBe('played');
 
     checkEagerPropertyValue(entry, 'sendTimeNs', '2023-05-04, 08:21:19.252');
     checkPropertyValue(entryProperties, 'startTransactionId', '13086765351920');
@@ -233,21 +231,21 @@
     const layerParticipants = assertDefined(
       entry.getEagerPropertyByName('layers'),
     );
-    expect(layerParticipants.getAllChildren().length).toEqual(2);
+    expect(layerParticipants.getAllChildren().length).toBe(2);
     checkPropertyValue(layerParticipants, '0', '113');
     checkPropertyValue(layerParticipants, '1', '190');
 
     const windowParticipants = assertDefined(
       entry.getEagerPropertyByName('windows'),
     );
-    expect(windowParticipants.getAllChildren().length).toEqual(2);
+    expect(windowParticipants.getAllChildren().length).toBe(2);
     checkPropertyValue(windowParticipants, '0', '179781688');
     checkPropertyValue(windowParticipants, '1', '184699222');
 
     const targets = assertDefined(
       entryProperties.getChildByName('targets'),
     ).getAllChildren();
-    expect(targets.length).toEqual(2);
+    expect(targets.length).toBe(2);
     checkPropertyValue(targets[0], 'layerId', '113');
     checkPropertyValue(targets[0], 'mode', 'TO_FRONT');
     checkPropertyValue(
@@ -274,9 +272,7 @@
     property: string,
     value: string,
   ) {
-    expect(node.getEagerPropertyByName(property)?.formattedValue()).toEqual(
-      value,
-    );
+    expect(node.getEagerPropertyByName(property)?.formattedValue()).toBe(value);
   }
 
   function checkPropertyValue(
@@ -284,6 +280,6 @@
     property: string,
     value: string,
   ) {
-    expect(node.getChildByName(property)?.formattedValue()).toEqual(value);
+    expect(node.getChildByName(property)?.formattedValue()).toBe(value);
   }
 });
diff --git a/tools/winscope/src/parsers/transitions/perfetto/parser_transitions_test.ts b/tools/winscope/src/parsers/transitions/perfetto/parser_transitions_test.ts
index 4767484..ceb27cb 100644
--- a/tools/winscope/src/parsers/transitions/perfetto/parser_transitions_test.ts
+++ b/tools/winscope/src/parsers/transitions/perfetto/parser_transitions_test.ts
@@ -58,36 +58,36 @@
 
     it('retrieves all entries', async () => {
       const entries = await parser.getAllEntries();
-      expect(entries.length).toEqual(4);
+      expect(entries.length).toBe(4);
       expect(entries.every((entry) => entry !== undefined)).toBeTrue();
     });
 
     it('extracts eager properties', async () => {
       const entry = await parser.getEntry(0);
 
-      expect(entry.getEagerPropertyByName('transitionId')?.getValue()).toEqual(
+      expect(entry.getEagerPropertyByName('transitionId')?.getValue()).toBe(
         32n,
       );
       expect(
         entry.getEagerPropertyByName('transitionType')?.formattedValue(),
-      ).toEqual('OPEN');
+      ).toBe('OPEN');
 
-      expect(
-        entry.getEagerPropertyByName('sendTimeNs')?.formattedValue(),
-      ).toEqual('2023-11-21, 13:30:25.442');
+      expect(entry.getEagerPropertyByName('sendTimeNs')?.formattedValue()).toBe(
+        '2023-11-21, 13:30:25.442',
+      );
       expect(
         entry.getEagerPropertyByName('dispatchTimeNs')?.formattedValue(),
-      ).toEqual('2023-11-21, 13:30:25.448');
-      expect(
-        entry.getEagerPropertyByName('durationNs')?.formattedValue(),
-      ).toEqual('528 ms');
+      ).toBe('2023-11-21, 13:30:25.448');
+      expect(entry.getEagerPropertyByName('durationNs')?.formattedValue()).toBe(
+        '528 ms',
+      );
 
       const layerParticipants: Array<bigint> = assertDefined(
         entry.getEagerPropertyByName('layers'),
       )
         .getAllChildren()
         .map((child) => child.getValue());
-      expect(layerParticipants.length).toEqual(2);
+      expect(layerParticipants.length).toBe(2);
       expect(layerParticipants).toContain(47n);
       expect(layerParticipants).toContain(398n);
 
@@ -96,21 +96,21 @@
       )
         .getAllChildren()
         .map((child) => child.getValue());
-      expect(windowParticipants.length).toEqual(2);
+      expect(windowParticipants.length).toBe(2);
       expect(windowParticipants).toContain(159077656n);
       expect(windowParticipants).toContain(193491296n);
 
-      expect(entry.getEagerPropertyByName('handler')?.formattedValue()).toEqual(
+      expect(entry.getEagerPropertyByName('handler')?.formattedValue()).toBe(
         'com.android.wm.shell.transition.DefaultMixedHandler',
       );
-      expect(entry.getEagerPropertyByName('status')?.formattedValue()).toEqual(
+      expect(entry.getEagerPropertyByName('status')?.formattedValue()).toBe(
         'PLAYED',
       );
 
       const entryWithFlags = await parser.getEntry(1);
       expect(
         entryWithFlags.getEagerPropertyByName('flags')?.formattedValue(),
-      ).toEqual('TRANSIT_FLAG_IS_RECENTS');
+      ).toBe('TRANSIT_FLAG_IS_RECENTS');
     });
 
     it('decodes lazy transition properties', async () => {
@@ -118,81 +118,79 @@
 
       const properties = await entry.getAllProperties();
 
-      expect(properties.getChildByName('id')?.getValue()).toEqual(32);
-      expect(
-        properties.getChildByName('createTimeNs')?.formattedValue(),
-      ).toEqual('2023-11-21, 13:30:25.429');
-      expect(properties.getChildByName('sendTimeNs')?.formattedValue()).toEqual(
+      expect(properties.getChildByName('id')?.getValue()).toBe(32);
+      expect(properties.getChildByName('createTimeNs')?.formattedValue()).toBe(
+        '2023-11-21, 13:30:25.429',
+      );
+      expect(properties.getChildByName('sendTimeNs')?.formattedValue()).toBe(
         '2023-11-21, 13:30:25.442',
       );
-      expect(
-        properties.getChildByName('finishTimeNs')?.formattedValue(),
-      ).toEqual('2023-11-21, 13:30:25.970');
-      expect(entry.getEagerPropertyByName('status')?.getValue()).toEqual(
-        'played',
+      expect(properties.getChildByName('finishTimeNs')?.formattedValue()).toBe(
+        '2023-11-21, 13:30:25.970',
       );
+      expect(entry.getEagerPropertyByName('status')?.getValue()).toBe('played');
 
       expect(
         assertDefined(
           properties.getChildByName('startingWindowRemoveTimeNs'),
         ).formattedValue(),
-      ).toEqual('2023-11-21, 13:30:25.565');
+      ).toBe('2023-11-21, 13:30:25.565');
       expect(
         assertDefined(
           properties.getChildByName('startTransactionId'),
         ).formattedValue(),
-      ).toEqual('5811090758076');
+      ).toBe('5811090758076');
       expect(
         assertDefined(
           properties.getChildByName('finishTransactionId'),
         ).formattedValue(),
-      ).toEqual('5811090758077');
+      ).toBe('5811090758077');
       expect(
         assertDefined(properties.getChildByName('type')).formattedValue(),
-      ).toEqual('OPEN');
+      ).toBe('OPEN');
 
       const targets = assertDefined(
         properties.getChildByName('targets'),
       ).getAllChildren();
-      expect(targets.length).toEqual(2);
+      expect(targets.length).toBe(2);
       expect(
         assertDefined(targets[0].getChildByName('layerId')).formattedValue(),
-      ).toEqual('398');
+      ).toBe('398');
       expect(
         assertDefined(targets[1].getChildByName('layerId')).formattedValue(),
-      ).toEqual('47');
+      ).toBe('47');
       expect(
         assertDefined(targets[0].getChildByName('mode')).formattedValue(),
-      ).toEqual('TO_FRONT');
+      ).toBe('TO_FRONT');
       expect(
         assertDefined(targets[1].getChildByName('mode')).formattedValue(),
-      ).toEqual('TO_BACK');
+      ).toBe('TO_BACK');
       expect(
         assertDefined(targets[0].getChildByName('flags')).formattedValue(),
-      ).toEqual('FLAG_MOVED_TO_TOP');
+      ).toBe('FLAG_MOVED_TO_TOP');
       expect(
         assertDefined(targets[1].getChildByName('flags')).formattedValue(),
-      ).toEqual('FLAG_SHOW_WALLPAPER');
+      ).toBe('FLAG_SHOW_WALLPAPER');
 
       expect(
         assertDefined(
           properties.getChildByName('dispatchTimeNs'),
         ).formattedValue(),
-      ).toEqual('2023-11-21, 13:30:25.448');
+      ).toBe('2023-11-21, 13:30:25.448');
       expect(properties.getChildByName('mergeRequestTime')).toBeUndefined();
       expect(properties.getChildByName('mergeTime')).toBeUndefined();
       expect(properties.getChildByName('shellAbortTimeNs')).toBeUndefined();
       expect(properties.getChildByName('mergeTarget')).toBeUndefined();
       expect(
         assertDefined(properties.getChildByName('handler')).formattedValue(),
-      ).toEqual('com.android.wm.shell.transition.DefaultMixedHandler');
+      ).toBe('com.android.wm.shell.transition.DefaultMixedHandler');
 
       const entryWithFlags = await parser.getEntry(1);
       expect(
         assertDefined(
           (await entryWithFlags.getAllProperties()).getChildByName('flags'),
         ).formattedValue(),
-      ).toEqual('TRANSIT_FLAG_IS_RECENTS');
+      ).toBe('TRANSIT_FLAG_IS_RECENTS');
     });
   });
 });
diff --git a/tools/winscope/src/parsers/view_capture/legacy/parser_view_capture_test.ts b/tools/winscope/src/parsers/view_capture/legacy/parser_view_capture_test.ts
index 35604b5..4d11c9e 100644
--- a/tools/winscope/src/parsers/view_capture/legacy/parser_view_capture_test.ts
+++ b/tools/winscope/src/parsers/view_capture/legacy/parser_view_capture_test.ts
@@ -70,17 +70,17 @@
 
   it('converts to valid perfetto packets', async () => {
     const packets = parser.convertToPerfettoPackets!(10, 2, 3);
-    expect(packets.length).toEqual(2000);
-    expect(packets[0].trustedPacketSequenceId).toEqual(10);
+    expect(packets.length).toBe(2000);
+    expect(packets[0].trustedPacketSequenceId).toBe(10);
     expect(packets[0].timestamp).toEqual(
       Long.fromString(BigInt(181114412436130).toString()),
     );
     expect(packets[0].timestampClockId).toEqual(
       perfetto.protos.ClockSnapshot.Clock.BuiltinClocks.BOOTTIME,
     );
-    expect(packets[0].trustedUid).toEqual(2);
-    expect(packets[0].trustedPid).toEqual(3);
-    expect(packets[0].sequenceFlags).toEqual(3);
+    expect(packets[0].trustedUid).toBe(2);
+    expect(packets[0].trustedPid).toBe(3);
+    expect(packets[0].sequenceFlags).toBe(3);
     expect(packets[1].sequenceFlags).toEqual(
       perfetto.protos.TracePacket.SequenceFlags.SEQ_NEEDS_INCREMENTAL_STATE,
     );
@@ -90,13 +90,13 @@
         '.perfetto.protos.WinscopeExtensionsImpl.viewcapture'
       ],
     );
-    expect(vcData.packageNameIid).toEqual(1);
-    expect(vcData.windowNameIid).toEqual(1);
-    expect(vcData.views?.length).toEqual(17);
+    expect(vcData.packageNameIid).toBe(1);
+    expect(vcData.windowNameIid).toBe(1);
+    expect(vcData.views?.length).toBe(17);
 
     const internedData = assertDefined(packets[0].internedData);
 
-    expect(internedData.viewcapturePackageName?.length).toEqual(1);
+    expect(internedData.viewcapturePackageName?.length).toBe(1);
     expect(internedData.viewcapturePackageName?.[0].iid).toEqual(
       Long.fromNumber(1, true),
     );
@@ -104,7 +104,7 @@
       utf8Encode('com.google.android.apps.nexuslauncher'),
     );
 
-    expect(internedData.viewcaptureWindowName?.length).toEqual(1);
+    expect(internedData.viewcaptureWindowName?.length).toBe(1);
     expect(internedData.viewcaptureWindowName?.[0].iid).toEqual(
       Long.fromNumber(1, true),
     );
@@ -112,7 +112,7 @@
       utf8Encode('.Taskbar'),
     );
 
-    expect(internedData.viewcaptureClassName?.length).toEqual(68);
+    expect(internedData.viewcaptureClassName?.length).toBe(68);
     expect(internedData.viewcaptureClassName?.[3].iid).toEqual(
       Long.fromNumber(3, true),
     );
@@ -120,7 +120,7 @@
       utf8Encode('com.android.launcher3.views.DoubleShadowBubbleTextView'),
     );
 
-    expect(internedData.viewcaptureViewId?.length).toEqual(11);
+    expect(internedData.viewcaptureViewId?.length).toBe(11);
     expect(internedData.viewcaptureViewId?.[1].iid).toEqual(
       Long.fromNumber(2, true),
     );
@@ -145,9 +145,9 @@
     ]);
 
     const entry = await perfettoParser.getEntry(1);
-    expect(entry.name).toEqual(
+    expect(entry.name).toBe(
       'com.android.launcher3.taskbar.TaskbarDragLayer@265160962',
     );
-    expect(entry.getRects()?.length).toEqual(1);
+    expect(entry.getRects()?.length).toBe(1);
   });
 });
diff --git a/tools/winscope/src/parsers/view_capture/perfetto/parser_view_capture_window_test.ts b/tools/winscope/src/parsers/view_capture/perfetto/parser_view_capture_window_test.ts
index be63ed8..86e56c9 100644
--- a/tools/winscope/src/parsers/view_capture/perfetto/parser_view_capture_window_test.ts
+++ b/tools/winscope/src/parsers/view_capture/perfetto/parser_view_capture_window_test.ts
@@ -55,7 +55,7 @@
   });
 
   it('provides timestamps', () => {
-    expect(assertDefined(parser.getTimestamps()).length).toEqual(36);
+    expect(assertDefined(parser.getTimestamps()).length).toBe(36);
 
     const expected = [
       TimestampConverterUtils.makeRealTimestamp(1716828479973482553n),
@@ -68,33 +68,29 @@
   it('builds trace entry', async () => {
     const root = await parser.getEntry(1);
     expect(root).toBeInstanceOf(HierarchyTreeNode);
-    expect(root.name).toEqual(
-      'com.android.internal.policy.DecorView@203589466',
-    );
-    expect(root.getRects()?.length).toEqual(1);
+    expect(root.name).toBe('com.android.internal.policy.DecorView@203589466');
+    expect(root.getRects()?.length).toBe(1);
 
     const children = root.getAllChildren();
-    expect(children.length).toEqual(1);
-    expect(children[0].name).toEqual('android.widget.LinearLayout@160251275');
-    expect(children[0].getRects()?.length).toEqual(1);
+    expect(children.length).toBe(1);
+    expect(children[0].name).toBe('android.widget.LinearLayout@160251275');
+    expect(children[0].getRects()?.length).toBe(1);
   });
 
   it('sets property default values + formatters', async () => {
     const root = await parser.getEntry(1);
     const properties = await root.getAllProperties();
     const defaultProperty = assertDefined(properties.getChildByName('left'));
-    expect(defaultProperty.getValue()).toEqual(0);
-    expect(defaultProperty.formattedValue()).toEqual('0');
+    expect(defaultProperty.getValue()).toBe(0);
+    expect(defaultProperty.formattedValue()).toBe('0');
   });
 
   it('supports VIEW_CAPTURE_METADATA custom query', async () => {
     const metadata = await trace.customQuery(
       CustomQueryType.VIEW_CAPTURE_METADATA,
     );
-    expect(metadata.packageName).toEqual(
-      'com.google.android.apps.nexuslauncher',
-    );
-    expect(metadata.windowName).toEqual(
+    expect(metadata.packageName).toBe('com.google.android.apps.nexuslauncher');
+    expect(metadata.windowName).toBe(
       'com.android.internal.policy.PhoneWindow@4f9be60',
     );
   });
diff --git a/tools/winscope/src/parsers/window_manager/custom_query_utils_test.ts b/tools/winscope/src/parsers/window_manager/custom_query_utils_test.ts
index b742ef0..f8dea54 100644
--- a/tools/winscope/src/parsers/window_manager/custom_query_utils_test.ts
+++ b/tools/winscope/src/parsers/window_manager/custom_query_utils_test.ts
@@ -28,7 +28,7 @@
         .sliceEntries(0, 1)
         .customQuery(CustomQueryType.WM_WINDOWS_TOKEN_AND_TITLE);
 
-      expect(tokenAndTitles.length).toEqual(69);
+      expect(tokenAndTitles.length).toBe(69);
 
       // RootWindowContainerProto
       expect(tokenAndTitles).toContain({
diff --git a/tools/winscope/src/parsers/window_manager/legacy/parser_window_manager_dump_test.ts b/tools/winscope/src/parsers/window_manager/legacy/parser_window_manager_dump_test.ts
index 97d0095..97e63cb 100644
--- a/tools/winscope/src/parsers/window_manager/legacy/parser_window_manager_dump_test.ts
+++ b/tools/winscope/src/parsers/window_manager/legacy/parser_window_manager_dump_test.ts
@@ -73,7 +73,7 @@
   it('retrieves trace entry', async () => {
     const entry = await parser.getEntry(0);
     expect(entry).toBeInstanceOf(HierarchyTreeNode);
-    expect(entry.getEagerPropertyByName('focusedApp')?.getValue()).toEqual(
+    expect(entry.getEagerPropertyByName('focusedApp')?.getValue()).toBe(
       'com.google.android.apps.nexuslauncher/.NexusLauncherActivity',
     );
   });
@@ -82,7 +82,7 @@
     const tokenAndTitles = await trace.customQuery(
       CustomQueryType.WM_WINDOWS_TOKEN_AND_TITLE,
     );
-    expect(tokenAndTitles.length).toEqual(73);
+    expect(tokenAndTitles.length).toBe(73);
     expect(tokenAndTitles).toContain({token: 'cab97a6', title: 'Leaf:36:36'});
   });
 });
diff --git a/tools/winscope/src/parsers/window_manager/legacy/parser_window_manager_test.ts b/tools/winscope/src/parsers/window_manager/legacy/parser_window_manager_test.ts
index 04af2aa..d2c5782 100644
--- a/tools/winscope/src/parsers/window_manager/legacy/parser_window_manager_test.ts
+++ b/tools/winscope/src/parsers/window_manager/legacy/parser_window_manager_test.ts
@@ -65,14 +65,14 @@
     it('retrieves trace entry', async () => {
       const entry = await parser.getEntry(1);
       expect(entry).toBeInstanceOf(HierarchyTreeNode);
-      expect(entry.id).toEqual('WindowManagerState root');
+      expect(entry.id).toBe('WindowManagerState root');
     });
 
     it('supports WM_WINDOWS_TOKEN_AND_TITLE custom query', async () => {
       const tokenAndTitles = await trace
         .sliceEntries(0, 1)
         .customQuery(CustomQueryType.WM_WINDOWS_TOKEN_AND_TITLE);
-      expect(tokenAndTitles.length).toEqual(69);
+      expect(tokenAndTitles.length).toBe(69);
       expect(tokenAndTitles).toContain({token: 'c06766f', title: 'Leaf:36:36'});
     });
   });
@@ -102,7 +102,7 @@
     it('retrieves trace entry', async () => {
       const entry = await parser.getEntry(1);
       expect(entry).toBeInstanceOf(HierarchyTreeNode);
-      expect(entry.id).toEqual('WindowManagerState root');
+      expect(entry.id).toBe('WindowManagerState root');
     });
   });
 
@@ -133,7 +133,7 @@
     it('retrieves trace entry', async () => {
       const entry = await parser.getEntry(0);
       expect(entry).toBeInstanceOf(HierarchyTreeNode);
-      expect(entry.id).toEqual('WindowManagerState root');
+      expect(entry.id).toBe('WindowManagerState root');
     });
   });
 });
diff --git a/tools/winscope/src/parsers/window_manager/perfetto/parser_window_manager_test.ts b/tools/winscope/src/parsers/window_manager/perfetto/parser_window_manager_test.ts
index 0e4d364..23adf9d 100644
--- a/tools/winscope/src/parsers/window_manager/perfetto/parser_window_manager_test.ts
+++ b/tools/winscope/src/parsers/window_manager/perfetto/parser_window_manager_test.ts
@@ -63,14 +63,14 @@
   it('retrieves trace entry', async () => {
     const entry = await parser.getEntry(1);
     expect(entry).toBeInstanceOf(HierarchyTreeNode);
-    expect(entry.id).toEqual('WindowManagerState root');
+    expect(entry.id).toBe('WindowManagerState root');
   });
 
   it('supports WM_WINDOWS_TOKEN_AND_TITLE custom query', async () => {
     const tokenAndTitles = await trace
       .sliceEntries(0, 1)
       .customQuery(CustomQueryType.WM_WINDOWS_TOKEN_AND_TITLE);
-    expect(tokenAndTitles.length).toEqual(69);
+    expect(tokenAndTitles.length).toBe(69);
     expect(tokenAndTitles).toContain({token: '86f4c23', title: 'Leaf:36:36'});
   });
 });
diff --git a/tools/winscope/src/parsers/window_manager/properties_provider_factory_test.ts b/tools/winscope/src/parsers/window_manager/properties_provider_factory_test.ts
index 0ddd064..d1cd624 100644
--- a/tools/winscope/src/parsers/window_manager/properties_provider_factory_test.ts
+++ b/tools/winscope/src/parsers/window_manager/properties_provider_factory_test.ts
@@ -72,8 +72,8 @@
       expectedName: string,
     ) {
       const provider = factory.makeContainerProperties(entry);
-      expect(provider.length).toEqual(2);
-      expect(provider[1].getEagerProperties().name).toEqual(expectedName);
+      expect(provider.length).toBe(2);
+      expect(provider[1].getEagerProperties().name).toBe(expectedName);
     }
   });
 });
diff --git a/tools/winscope/src/test/e2e/cross_tool_protocol_test.ts b/tools/winscope/src/test/e2e/cross_tool_protocol_test.ts
index 393920d..3af13a1 100644
--- a/tools/winscope/src/test/e2e/cross_tool_protocol_test.ts
+++ b/tools/winscope/src/test/e2e/cross_tool_protocol_test.ts
@@ -253,7 +253,7 @@
 
   async function getWindowHandleWinscope(): Promise<string> {
     const handles = await browser.getAllWindowHandles();
-    expect(handles.length).toEqual(2);
+    expect(handles.length).toBe(2);
     return handles[1];
   }
 
diff --git a/tools/winscope/src/test/e2e/utils.ts b/tools/winscope/src/test/e2e/utils.ts
index 11b1589..270e6bd 100644
--- a/tools/winscope/src/test/e2e/utils.ts
+++ b/tools/winscope/src/test/e2e/utils.ts
@@ -154,7 +154,7 @@
   await checkWinscopeRealTimestamp(timestamp.slice(12));
   const prevEntryButton = element(by.css('#prev_entry_button'));
   const isDisabled = await prevEntryButton.getAttribute('disabled');
-  expect(isDisabled).toEqual('true');
+  expect(isDisabled).toBe('true');
 }
 
 export async function checkFinalRealTimestamp(timestamp: string) {
@@ -162,7 +162,7 @@
   await checkWinscopeRealTimestamp(timestamp.slice(12));
   const nextEntryButton = element(by.css('#next_entry_button'));
   const isDisabled = await nextEntryButton.getAttribute('disabled');
-  expect(isDisabled).toEqual('true');
+  expect(isDisabled).toBe('true');
 }
 
 export async function checkWinscopeRealTimestamp(timestamp: string) {
diff --git a/tools/winscope/src/test/e2e/viewer_input_method_clients_test.ts b/tools/winscope/src/test/e2e/viewer_input_method_clients_test.ts
index 20d4590..ce315a8 100644
--- a/tools/winscope/src/test/e2e/viewer_input_method_clients_test.ts
+++ b/tools/winscope/src/test/e2e/viewer_input_method_clients_test.ts
@@ -72,7 +72,7 @@
     const nodes = await element.all(
       by.css(`${viewerSelector} hierarchy-view .node`),
     );
-    expect(nodes.length).toEqual(5);
+    expect(nodes.length).toBe(5);
     expect(await nodes[0].getText()).toContain(
       'InputMethodClients - 2022-11-21, 18:05:14.970 - InsetsSourceConsumer#notifyAnimationFinished',
     );
@@ -118,11 +118,11 @@
 
     const sfState = additionalProperties.element(by.css('.sf-state'));
     const sfStateTimestamp = await sfState.getText();
-    expect(sfStateTimestamp).toEqual('2022-11-21, 18:05:14.902');
+    expect(sfStateTimestamp).toBe('2022-11-21, 18:05:14.902');
 
     const wmState = additionalProperties.element(by.css('.wm-state'));
     const wmStateTimestamp = await wmState.getText();
-    expect(wmStateTimestamp).toEqual('2022-11-21, 18:05:14.896');
+    expect(wmStateTimestamp).toBe('2022-11-21, 18:05:14.896');
 
     const focusSection = additionalProperties.element(by.css('.focus'));
     const focusSectionText = await focusSection.getText();
diff --git a/tools/winscope/src/test/e2e/viewer_input_method_manager_service_test.ts b/tools/winscope/src/test/e2e/viewer_input_method_manager_service_test.ts
index 9142217..5285737 100644
--- a/tools/winscope/src/test/e2e/viewer_input_method_manager_service_test.ts
+++ b/tools/winscope/src/test/e2e/viewer_input_method_manager_service_test.ts
@@ -70,7 +70,7 @@
       by.css('.ime-manager-service .wm-state'),
     );
     const wmStateTimestamp = await wmState.getText();
-    expect(wmStateTimestamp).toEqual('2022-11-21, 18:05:14.714');
+    expect(wmStateTimestamp).toBe('2022-11-21, 18:05:14.714');
 
     const insetsSourceProvider = additionalProperties.element(
       by.css('.insets-source-provider'),
diff --git a/tools/winscope/src/test/e2e/viewer_input_method_service_test.ts b/tools/winscope/src/test/e2e/viewer_input_method_service_test.ts
index 01a7c9e..ba5b6aa 100644
--- a/tools/winscope/src/test/e2e/viewer_input_method_service_test.ts
+++ b/tools/winscope/src/test/e2e/viewer_input_method_service_test.ts
@@ -67,7 +67,7 @@
     const nodes = await element.all(
       by.css(`${viewerSelector} hierarchy-view .node`),
     );
-    expect(nodes.length).toEqual(4);
+    expect(nodes.length).toBe(4);
     expect(await nodes[0].getText()).toContain(
       'InputMethodService - 2022-11-21, 18:05:14.720 - InputMethodService#applyVisibilityInInsetsConsumerIfNecessary',
     );
diff --git a/tools/winscope/src/test/e2e/viewer_screenshot_test.ts b/tools/winscope/src/test/e2e/viewer_screenshot_test.ts
index ec9b01f..dcc9c91 100644
--- a/tools/winscope/src/test/e2e/viewer_screenshot_test.ts
+++ b/tools/winscope/src/test/e2e/viewer_screenshot_test.ts
@@ -60,7 +60,7 @@
     expect(src).toContain('blob:');
 
     const overlayTitle = element(by.css(`${viewerSelector} .overlay-title`));
-    expect(await overlayTitle.getText()).toEqual('screenshot');
+    expect(await overlayTitle.getText()).toBe('screenshot');
 
     const selectTrigger = element(
       by.css(`${viewerSelector} .mat-mdc-select-trigger`),
@@ -74,6 +74,6 @@
     const newSrc = await img.getAttribute('src');
     expect(newSrc).toContain('blob:');
     expect(newSrc).not.toEqual(src);
-    expect(await overlayTitle.getText()).toEqual('screenshot_2');
+    expect(await overlayTitle.getText()).toBe('screenshot_2');
   });
 });
diff --git a/tools/winscope/src/test/e2e/viewer_surface_flinger_test.ts b/tools/winscope/src/test/e2e/viewer_surface_flinger_test.ts
index 30ac9bb..12549f7 100644
--- a/tools/winscope/src/test/e2e/viewer_surface_flinger_test.ts
+++ b/tools/winscope/src/test/e2e/viewer_surface_flinger_test.ts
@@ -86,7 +86,7 @@
 
     const flags = curatedProperties.element(by.css('.flags'));
     const flagsText = await flags.getText();
-    expect(flagsText).toEqual('Flags: OPAQUE | ENABLE_BACKPRESSURE (0x102)');
+    expect(flagsText).toBe('Flags: OPAQUE | ENABLE_BACKPRESSURE (0x102)');
 
     const destinationFrame = curatedProperties.element(by.css('.dest-frame'));
     const destinationFrameText = await destinationFrame.getText();
diff --git a/tools/winscope/src/test/e2e/viewer_transactions_test.ts b/tools/winscope/src/test/e2e/viewer_transactions_test.ts
index 1dfd876..b6c4382 100644
--- a/tools/winscope/src/test/e2e/viewer_transactions_test.ts
+++ b/tools/winscope/src/test/e2e/viewer_transactions_test.ts
@@ -79,24 +79,24 @@
     expect(await selectedEntry.isPresent()).toBeTruthy();
 
     const transactionId = selectedEntry.element(by.css('.transaction-id'));
-    expect(await transactionId.getText()).toEqual('7975754272149');
+    expect(await transactionId.getText()).toBe('7975754272149');
 
     const vsyncId = selectedEntry.element(by.css('.vsyncid'));
-    expect(await vsyncId.getText()).toEqual('93389');
+    expect(await vsyncId.getText()).toBe('93389');
 
     const pid = selectedEntry.element(by.css('.pid'));
-    expect(await pid.getText()).toEqual('1857');
+    expect(await pid.getText()).toBe('1857');
 
     const uid = selectedEntry.element(by.css('.uid'));
-    expect(await uid.getText()).toEqual('1000');
+    expect(await uid.getText()).toBe('1000');
 
     const type = selectedEntry.element(by.css('.transaction-type'));
-    expect(await type.getText()).toEqual('LAYER_CHANGED');
+    expect(await type.getText()).toBe('LAYER_CHANGED');
 
     const layerOrDisplayId = selectedEntry.element(
       by.css('.layer-or-display-id'),
     );
-    expect(await layerOrDisplayId.getText()).toEqual('798');
+    expect(await layerOrDisplayId.getText()).toBe('798');
 
     const whatString =
       'eLayerChanged | eAlphaChanged | eFlagsChanged | eReparent | eColorChanged | eHasListenerCallbacksChanged';
diff --git a/tools/winscope/src/test/unit/dom_test_utils.ts b/tools/winscope/src/test/unit/dom_test_utils.ts
index 0f4e612..9bfa0a6 100644
--- a/tools/winscope/src/test/unit/dom_test_utils.ts
+++ b/tools/winscope/src/test/unit/dom_test_utils.ts
@@ -312,7 +312,7 @@
     if (hasValue) {
       expect((this.root as any).value).toEqual(value);
     } else {
-      expect(value.length).toEqual(0);
+      expect(value.length).toBe(0);
     }
   }
 
diff --git a/tools/winscope/src/test/unit/fixture_utils.ts b/tools/winscope/src/test/unit/fixture_utils.ts
index 51b636c..096c1a2 100644
--- a/tools/winscope/src/test/unit/fixture_utils.ts
+++ b/tools/winscope/src/test/unit/fixture_utils.ts
@@ -175,7 +175,7 @@
   }
 
   const perfettoParsers = await getPerfettoParsers(filename);
-  expect(perfettoParsers.length).toEqual(1);
+  expect(perfettoParsers.length).toBe(1);
   expect(perfettoParsers[0].getTraceType()).toEqual(type);
   return new TraceBuilder<T>()
     .setType(type)
diff --git a/tools/winscope/src/test/unit/mock_long_test.ts b/tools/winscope/src/test/unit/mock_long_test.ts
index 78e9c01..93736fb 100644
--- a/tools/winscope/src/test/unit/mock_long_test.ts
+++ b/tools/winscope/src/test/unit/mock_long_test.ts
@@ -18,10 +18,10 @@
 
 describe('MockLong', () => {
   it('converts low/high bits to string correctly', () => {
-    expect(new MockLong(0, 0).toString()).toEqual('0');
-    expect(new MockLong(10, 0).toString()).toEqual('10');
-    expect(new MockLong(0, 10).toString()).toEqual('42949672960');
-    expect(new MockLong(10, 10).toString()).toEqual('42949672970');
-    expect(new MockLong(-1719594551, 174).toString()).toEqual('749899682249');
+    expect(new MockLong(0, 0).toString()).toBe('0');
+    expect(new MockLong(10, 0).toString()).toBe('10');
+    expect(new MockLong(0, 10).toString()).toBe('42949672960');
+    expect(new MockLong(10, 10).toString()).toBe('42949672970');
+    expect(new MockLong(-1719594551, 174).toString()).toBe('749899682249');
   });
 });
diff --git a/tools/winscope/src/trace/formatters_test.ts b/tools/winscope/src/trace/formatters_test.ts
index 4fccaf5..0f0c67f 100644
--- a/tools/winscope/src/trace/formatters_test.ts
+++ b/tools/winscope/src/trace/formatters_test.ts
@@ -54,22 +54,22 @@
         DEFAULT_PROPERTY_FORMATTER.format(
           new PropertyTreeNode('', '', PropertySource.PROTO, 12345),
         ),
-      ).toEqual('12345');
+      ).toBe('12345');
       expect(
         DEFAULT_PROPERTY_FORMATTER.format(
           new PropertyTreeNode('', '', PropertySource.PROTO, 'test_string'),
         ),
-      ).toEqual('test_string');
+      ).toBe('test_string');
       expect(
         DEFAULT_PROPERTY_FORMATTER.format(
           new PropertyTreeNode('', '', PropertySource.PROTO, 0.1234),
         ),
-      ).toEqual('0.123');
+      ).toBe('0.123');
       expect(
         DEFAULT_PROPERTY_FORMATTER.format(
           new PropertyTreeNode('', '', PropertySource.PROTO, 1.5),
         ),
-      ).toEqual('1.500');
+      ).toBe('1.500');
     });
 
     it('translates values with toString method correctly', () => {
@@ -77,7 +77,7 @@
         DEFAULT_PROPERTY_FORMATTER.format(
           new PropertyTreeNode('', '', PropertySource.PROTO, BigInt(123)),
         ),
-      ).toEqual('123');
+      ).toBe('123');
     });
 
     it('translates default values correctly', () => {
@@ -90,12 +90,12 @@
         DEFAULT_PROPERTY_FORMATTER.format(
           new PropertyTreeNode('', '', PropertySource.PROTO, false),
         ),
-      ).toEqual('false');
+      ).toBe('false');
       expect(
         DEFAULT_PROPERTY_FORMATTER.format(
           new PropertyTreeNode('', '', PropertySource.PROTO, null),
         ),
-      ).toEqual('null');
+      ).toBe('null');
     });
   });
 
@@ -124,7 +124,7 @@
       );
       expect(
         COLOR_FORMATTER.format(makeColorNode(0.106, 0.203, 0.313, undefined)),
-      ).toEqual('(0.106, 0.203, 0.313)');
+      ).toBe('(0.106, 0.203, 0.313)');
     });
   });
 
@@ -147,7 +147,7 @@
       );
       expect(
         RECT_FORMATTER.format(makeRectNode(0, 1.6431, 10456.9086, 10)),
-      ).toEqual('(0, 1.643) - (10456.909, 10)');
+      ).toBe('(0, 1.643) - (10456.909, 10)');
     });
   });
 
@@ -166,7 +166,7 @@
         LAYER_ID_FORMATTER.format(
           new PropertyTreeNode('', '', PropertySource.PROTO, -1),
         ),
-      ).toEqual('none');
+      ).toBe('none');
     });
 
     it('translates valid id correctly', () => {
@@ -174,12 +174,12 @@
         LAYER_ID_FORMATTER.format(
           new PropertyTreeNode('', '', PropertySource.PROTO, 1),
         ),
-      ).toEqual('1');
+      ).toBe('1');
       expect(
         LAYER_ID_FORMATTER.format(
           new PropertyTreeNode('', '', PropertySource.PROTO, -10),
         ),
-      ).toEqual('-10');
+      ).toBe('-10');
     });
   });
 
@@ -194,10 +194,10 @@
             TransformMatrix.IDENTITY.dsdy,
           ),
         ),
-      ).toEqual('dsdx: 1, dtdx: 0, dtdy: 0, dsdy: 1');
-      expect(
-        MATRIX_FORMATTER.format(makeMatrixNode(0.4, 100, 1, 0.1232)),
-      ).toEqual('dsdx: 0.400, dtdx: 100, dtdy: 1, dsdy: 0.123');
+      ).toBe('dsdx: 1, dtdx: 0, dtdy: 0, dsdy: 1');
+      expect(MATRIX_FORMATTER.format(makeMatrixNode(0.4, 100, 1, 0.1232))).toBe(
+        'dsdx: 0.400, dtdx: 100, dtdy: 1, dsdy: 0.123',
+      );
       expect(MATRIX_FORMATTER.format(makeMatrixNode(0, 0, 0, 0))).toEqual(
         'null',
       );
@@ -212,7 +212,7 @@
             ty: 10,
           }),
         ),
-      ).toEqual('dsdx: 1, dtdx: 0, dtdy: 0, dsdy: 1, tx: 5, ty: 10');
+      ).toBe('dsdx: 1, dtdx: 0, dtdy: 0, dsdy: 1, tx: 5, ty: 10');
     });
   });
 
@@ -220,43 +220,43 @@
     it('translates type correctly', () => {
       expect(
         TRANSFORM_FORMATTER.format(makeTransformNode(TransformTypeFlags.EMPTY)),
-      ).toEqual('IDENTITY');
+      ).toBe('IDENTITY');
       expect(
         TRANSFORM_FORMATTER.format(
           makeTransformNode(TransformTypeFlags.TRANSLATE_VAL),
         ),
-      ).toEqual('TRANSLATE');
+      ).toBe('TRANSLATE');
       expect(
         TRANSFORM_FORMATTER.format(
           makeTransformNode(TransformTypeFlags.SCALE_VAL),
         ),
-      ).toEqual('SCALE');
+      ).toBe('SCALE');
       expect(
         TRANSFORM_FORMATTER.format(
           makeTransformNode(TransformTypeFlags.FLIP_H_VAL),
         ),
-      ).toEqual('IDENTITY|FLIP_H');
+      ).toBe('IDENTITY|FLIP_H');
       expect(
         TRANSFORM_FORMATTER.format(
           makeTransformNode(TransformTypeFlags.FLIP_V_VAL),
         ),
-      ).toEqual('IDENTITY|FLIP_V');
+      ).toBe('IDENTITY|FLIP_V');
       expect(
         TRANSFORM_FORMATTER.format(
           makeTransformNode(TransformTypeFlags.ROT_90_VAL),
         ),
-      ).toEqual('IDENTITY|ROT_90');
+      ).toBe('IDENTITY|ROT_90');
       expect(
         TRANSFORM_FORMATTER.format(
           makeTransformNode(TransformTypeFlags.ROT_INVALID_VAL),
         ),
-      ).toEqual('IDENTITY|ROT_INVALID');
+      ).toBe('IDENTITY|ROT_INVALID');
     });
   });
 
   describe('SizeFormatter', () => {
     it('translates size correctly', () => {
-      expect(SIZE_FORMATTER.format(makeSizeNode(1, 2))).toEqual('1 x 2');
+      expect(SIZE_FORMATTER.format(makeSizeNode(1, 2))).toBe('1 x 2');
     });
   });
 
@@ -308,16 +308,16 @@
         .setValue(-1)
         .build();
 
-      expect(CUJ_TYPE_FORMATTER.format(cujType)).toEqual('UNKNOWN (-1)');
+      expect(CUJ_TYPE_FORMATTER.format(cujType)).toBe('UNKNOWN (-1)');
     });
   });
 
   describe('hex formatting', () => {
     it('formatAsHex()', () => {
-      expect(formatAsHex(0)).toEqual('0x0');
-      expect(formatAsHex(1024)).toEqual('0x400');
-      expect(formatAsHex(-1024)).toEqual('0xfffffc00');
-      expect(formatAsHex(-1024, true)).toEqual('0xFFFFFC00');
+      expect(formatAsHex(0)).toBe('0x0');
+      expect(formatAsHex(1024)).toBe('0x400');
+      expect(formatAsHex(-1024)).toBe('0xfffffc00');
+      expect(formatAsHex(-1024, true)).toBe('0xFFFFFC00');
     });
 
     it('HexFormatter', () => {
@@ -326,7 +326,7 @@
         .setName('hashcode')
         .setValue(1024)
         .build();
-      expect(HEX_FORMATTER.format(hashcode)).toEqual('0x400');
+      expect(HEX_FORMATTER.format(hashcode)).toBe('0x400');
     });
   });
 });
diff --git a/tools/winscope/src/trace_api/frame_map_test.ts b/tools/winscope/src/trace_api/frame_map_test.ts
index 9287c06..f1ea0d7 100644
--- a/tools/winscope/src/trace_api/frame_map_test.ts
+++ b/tools/winscope/src/trace_api/frame_map_test.ts
@@ -34,10 +34,10 @@
 
   it('getFramesRange()', () => {
     // empty
-    expect(map.getFramesRange({start: -2, end: -1})).toEqual(undefined);
-    expect(map.getFramesRange({start: 0, end: 1})).toEqual(undefined);
-    expect(map.getFramesRange({start: 5, end: 6})).toEqual(undefined);
-    expect(map.getFramesRange({start: 1, end: 1})).toEqual(undefined);
+    expect(map.getFramesRange({start: -2, end: -1})).toBeUndefined();
+    expect(map.getFramesRange({start: 0, end: 1})).toBeUndefined();
+    expect(map.getFramesRange({start: 5, end: 6})).toBeUndefined();
+    expect(map.getFramesRange({start: 1, end: 1})).toBeUndefined();
 
     // full
     expect(map.getFramesRange({start: 0, end: 6})).toEqual({start: 1, end: 7});
@@ -47,7 +47,7 @@
     expect(map.getFramesRange({start: 1, end: 4})).toEqual({start: 1, end: 2});
     expect(map.getFramesRange({start: 1, end: 2})).toEqual({start: 1, end: 2});
     expect(map.getFramesRange({start: 2, end: 3})).toEqual({start: 1, end: 2});
-    expect(map.getFramesRange({start: 3, end: 4})).toEqual(undefined);
+    expect(map.getFramesRange({start: 3, end: 4})).toBeUndefined();
     expect(map.getFramesRange({start: 4, end: 5})).toEqual({start: 4, end: 7});
 
     // slice away front
@@ -55,16 +55,16 @@
     expect(map.getFramesRange({start: 2, end: 6})).toEqual({start: 1, end: 7});
     expect(map.getFramesRange({start: 3, end: 6})).toEqual({start: 4, end: 7});
     expect(map.getFramesRange({start: 4, end: 6})).toEqual({start: 4, end: 7});
-    expect(map.getFramesRange({start: 5, end: 6})).toEqual(undefined);
-    expect(map.getFramesRange({start: 6, end: 6})).toEqual(undefined);
+    expect(map.getFramesRange({start: 5, end: 6})).toBeUndefined();
+    expect(map.getFramesRange({start: 6, end: 6})).toBeUndefined();
 
     // slice away back
     expect(map.getFramesRange({start: 0, end: 5})).toEqual({start: 1, end: 7});
     expect(map.getFramesRange({start: 0, end: 4})).toEqual({start: 1, end: 2});
     expect(map.getFramesRange({start: 0, end: 3})).toEqual({start: 1, end: 2});
     expect(map.getFramesRange({start: 0, end: 2})).toEqual({start: 1, end: 2});
-    expect(map.getFramesRange({start: 0, end: 1})).toEqual(undefined);
-    expect(map.getFramesRange({start: 0, end: 0})).toEqual(undefined);
+    expect(map.getFramesRange({start: 0, end: 1})).toBeUndefined();
+    expect(map.getFramesRange({start: 0, end: 0})).toBeUndefined();
 
     // query out of bounds
     expect(map.getFramesRange({start: -1, end: 7})).toEqual({start: 1, end: 7});
@@ -78,11 +78,11 @@
 
   it('getEntriesRange()', () => {
     // empty
-    expect(map.getEntriesRange({start: -2, end: -1})).toEqual(undefined);
-    expect(map.getEntriesRange({start: 7, end: 8})).toEqual(undefined);
-    expect(map.getEntriesRange({start: 2, end: 4})).toEqual(undefined);
-    expect(map.getEntriesRange({start: 3, end: 2})).toEqual(undefined);
-    expect(map.getEntriesRange({start: 2, end: 2})).toEqual(undefined);
+    expect(map.getEntriesRange({start: -2, end: -1})).toBeUndefined();
+    expect(map.getEntriesRange({start: 7, end: 8})).toBeUndefined();
+    expect(map.getEntriesRange({start: 2, end: 4})).toBeUndefined();
+    expect(map.getEntriesRange({start: 3, end: 2})).toBeUndefined();
+    expect(map.getEntriesRange({start: 2, end: 2})).toBeUndefined();
 
     // full
     expect(map.getEntriesRange({start: 0, end: 7})).toEqual({start: 1, end: 5});
@@ -106,7 +106,7 @@
     expect(map.getEntriesRange({start: 4, end: 7})).toEqual({start: 4, end: 5});
     expect(map.getEntriesRange({start: 5, end: 7})).toEqual({start: 4, end: 5});
     expect(map.getEntriesRange({start: 6, end: 7})).toEqual({start: 4, end: 5});
-    expect(map.getEntriesRange({start: 7, end: 7})).toEqual(undefined);
+    expect(map.getEntriesRange({start: 7, end: 7})).toBeUndefined();
 
     // slice away back
     expect(map.getEntriesRange({start: 1, end: 6})).toEqual({start: 1, end: 5});
@@ -114,7 +114,7 @@
     expect(map.getEntriesRange({start: 1, end: 4})).toEqual({start: 1, end: 3});
     expect(map.getEntriesRange({start: 1, end: 3})).toEqual({start: 1, end: 3});
     expect(map.getEntriesRange({start: 1, end: 2})).toEqual({start: 1, end: 3});
-    expect(map.getEntriesRange({start: 1, end: 1})).toEqual(undefined);
+    expect(map.getEntriesRange({start: 1, end: 1})).toBeUndefined();
 
     // query out of bounds
     expect(map.getEntriesRange({start: 0, end: 8})).toEqual({start: 1, end: 5});
diff --git a/tools/winscope/src/trace_api/trace_entry_test.ts b/tools/winscope/src/trace_api/trace_entry_test.ts
index 841c4d4..944dec4 100644
--- a/tools/winscope/src/trace_api/trace_entry_test.ts
+++ b/tools/winscope/src/trace_api/trace_entry_test.ts
@@ -58,9 +58,9 @@
   });
 
   it('getIndex()', () => {
-    expect(trace.getEntry(0).getIndex()).toEqual(0);
-    expect(trace.sliceEntries(2, 4).getEntry(0).getIndex()).toEqual(2);
-    expect(trace.sliceEntries(2, 4).getEntry(1).getIndex()).toEqual(3);
+    expect(trace.getEntry(0).getIndex()).toBe(0);
+    expect(trace.sliceEntries(2, 4).getEntry(0).getIndex()).toBe(2);
+    expect(trace.sliceEntries(2, 4).getEntry(1).getIndex()).toBe(3);
   });
 
   it('getTimestamp()', () => {
@@ -77,12 +77,12 @@
     expect(trace.getEntry(1).getFramesRange()).toEqual({start: 1, end: 2});
     expect(trace.getEntry(2).getFramesRange()).toEqual({start: 1, end: 2});
     expect(trace.getEntry(3).getFramesRange()).toEqual({start: 2, end: 3});
-    expect(trace.getEntry(4).getFramesRange()).toEqual(undefined);
+    expect(trace.getEntry(4).getFramesRange()).toBeUndefined();
     expect(trace.getEntry(5).getFramesRange()).toEqual({start: 4, end: 5});
   });
 
   it('getValue()', async () => {
-    expect(await trace.getEntry(0).getValue()).toEqual('entry-0');
-    expect(await trace.getEntry(1).getValue()).toEqual('entry-1');
+    expect(await trace.getEntry(0).getValue()).toBe('entry-0');
+    expect(await trace.getEntry(1).getValue()).toBe('entry-1');
   });
 });
diff --git a/tools/winscope/src/trace_api/trace_test.ts b/tools/winscope/src/trace_api/trace_test.ts
index a014dd9..4a97d75 100644
--- a/tools/winscope/src/trace_api/trace_test.ts
+++ b/tools/winscope/src/trace_api/trace_test.ts
@@ -58,14 +58,14 @@
   });
 
   it('getEntry()', async () => {
-    expect(await trace.getEntry(0).getValue()).toEqual('entry-0');
-    expect(await trace.getEntry(4).getValue()).toEqual('entry-4');
+    expect(await trace.getEntry(0).getValue()).toBe('entry-0');
+    expect(await trace.getEntry(4).getValue()).toBe('entry-4');
     expect(() => {
       trace.getEntry(5);
     }).toThrow();
 
-    expect(await trace.getEntry(-1).getValue()).toEqual('entry-4');
-    expect(await trace.getEntry(-5).getValue()).toEqual('entry-0');
+    expect(await trace.getEntry(-1).getValue()).toBe('entry-4');
+    expect(await trace.getEntry(-5).getValue()).toBe('entry-0');
     expect(() => {
       trace.getEntry(-6);
     }).toThrow();
@@ -101,20 +101,20 @@
 
     // slice
     const slice = trace.sliceEntries(1, -1);
-    expect(await slice.findClosestEntry(time9)?.getValue()).toEqual('entry-1');
-    expect(await slice.findClosestEntry(time10)?.getValue()).toEqual('entry-1');
-    expect(await slice.findClosestEntry(time11)?.getValue()).toEqual('entry-1');
-    expect(await slice.findClosestEntry(time12)?.getValue()).toEqual('entry-3');
-    expect(await slice.findClosestEntry(time13)?.getValue()).toEqual('entry-3');
-    expect(await slice.findClosestEntry(time14)?.getValue()).toEqual('entry-3');
+    expect(await slice.findClosestEntry(time9)?.getValue()).toBe('entry-1');
+    expect(await slice.findClosestEntry(time10)?.getValue()).toBe('entry-1');
+    expect(await slice.findClosestEntry(time11)?.getValue()).toBe('entry-1');
+    expect(await slice.findClosestEntry(time12)?.getValue()).toBe('entry-3');
+    expect(await slice.findClosestEntry(time13)?.getValue()).toBe('entry-3');
+    expect(await slice.findClosestEntry(time14)?.getValue()).toBe('entry-3');
 
     // full trace
-    expect(await trace.findClosestEntry(time9)?.getValue()).toEqual('entry-0');
-    expect(await trace.findClosestEntry(time10)?.getValue()).toEqual('entry-0');
-    expect(await trace.findClosestEntry(time11)?.getValue()).toEqual('entry-1');
-    expect(await trace.findClosestEntry(time12)?.getValue()).toEqual('entry-3');
-    expect(await trace.findClosestEntry(time13)?.getValue()).toEqual('entry-4');
-    expect(await trace.findClosestEntry(time14)?.getValue()).toEqual('entry-4');
+    expect(await trace.findClosestEntry(time9)?.getValue()).toBe('entry-0');
+    expect(await trace.findClosestEntry(time10)?.getValue()).toBe('entry-0');
+    expect(await trace.findClosestEntry(time11)?.getValue()).toBe('entry-1');
+    expect(await trace.findClosestEntry(time12)?.getValue()).toBe('entry-3');
+    expect(await trace.findClosestEntry(time13)?.getValue()).toBe('entry-4');
+    expect(await trace.findClosestEntry(time14)?.getValue()).toBe('entry-4');
   });
 
   it('findFirstGreaterOrEqualEntry()', async () => {
@@ -128,33 +128,33 @@
     expect(await slice.findFirstGreaterOrEqualEntry(time9)?.getValue()).toEqual(
       'entry-1',
     );
-    expect(
-      await slice.findFirstGreaterOrEqualEntry(time10)?.getValue(),
-    ).toEqual('entry-1');
-    expect(
-      await slice.findFirstGreaterOrEqualEntry(time11)?.getValue(),
-    ).toEqual('entry-1');
-    expect(
-      await slice.findFirstGreaterOrEqualEntry(time12)?.getValue(),
-    ).toEqual('entry-3');
+    expect(await slice.findFirstGreaterOrEqualEntry(time10)?.getValue()).toBe(
+      'entry-1',
+    );
+    expect(await slice.findFirstGreaterOrEqualEntry(time11)?.getValue()).toBe(
+      'entry-1',
+    );
+    expect(await slice.findFirstGreaterOrEqualEntry(time12)?.getValue()).toBe(
+      'entry-3',
+    );
     expect(await slice.findFirstGreaterOrEqualEntry(time13)).toBeUndefined();
 
     // full trace
     expect(await trace.findFirstGreaterOrEqualEntry(time9)?.getValue()).toEqual(
       'entry-0',
     );
-    expect(
-      await trace.findFirstGreaterOrEqualEntry(time10)?.getValue(),
-    ).toEqual('entry-0');
-    expect(
-      await trace.findFirstGreaterOrEqualEntry(time11)?.getValue(),
-    ).toEqual('entry-1');
-    expect(
-      await trace.findFirstGreaterOrEqualEntry(time12)?.getValue(),
-    ).toEqual('entry-3');
-    expect(
-      await trace.findFirstGreaterOrEqualEntry(time13)?.getValue(),
-    ).toEqual('entry-4');
+    expect(await trace.findFirstGreaterOrEqualEntry(time10)?.getValue()).toBe(
+      'entry-0',
+    );
+    expect(await trace.findFirstGreaterOrEqualEntry(time11)?.getValue()).toBe(
+      'entry-1',
+    );
+    expect(await trace.findFirstGreaterOrEqualEntry(time12)?.getValue()).toBe(
+      'entry-3',
+    );
+    expect(await trace.findFirstGreaterOrEqualEntry(time13)?.getValue()).toBe(
+      'entry-4',
+    );
     expect(await trace.findFirstGreaterOrEqualEntry(time14)).toBeUndefined();
   });
 
@@ -1005,7 +1005,7 @@
     expect(trace.sliceEntries(2).getFramesRange()).toEqual({start: 1, end: 7});
     expect(trace.sliceEntries(3).getFramesRange()).toEqual({start: 4, end: 7});
     expect(trace.sliceEntries(4).getFramesRange()).toEqual({start: 6, end: 7});
-    expect(trace.sliceEntries(5).getFramesRange()).toEqual(undefined);
+    expect(trace.sliceEntries(5).getFramesRange()).toBeUndefined();
 
     expect(trace.sliceEntries(undefined, 5).getFramesRange()).toEqual({
       start: 0,
@@ -1188,7 +1188,7 @@
       .setFrameMap(undefined)
       .build();
 
-    expect(await trace.getEntry(0).getValue()).toEqual('entry-0');
+    expect(await trace.getEntry(0).getValue()).toBe('entry-0');
     expect(await extractEntries(trace)).toEqual([
       'entry-0',
       'entry-1',
diff --git a/tools/winscope/src/trace_collection/adb/adb_device_connection_test.ts b/tools/winscope/src/trace_collection/adb/adb_device_connection_test.ts
index f320b3c..5bae806 100644
--- a/tools/winscope/src/trace_collection/adb/adb_device_connection_test.ts
+++ b/tools/winscope/src/trace_collection/adb/adb_device_connection_test.ts
@@ -67,7 +67,7 @@
       AdbDeviceState.OFFLINE,
       listener,
     );
-    expect(connection.getFormattedName()).toEqual('offline Pixel (35562)');
+    expect(connection.getFormattedName()).toBe('offline Pixel (35562)');
   });
 
   it('formats name for unauthorized device', () => {
@@ -77,11 +77,11 @@
       AdbDeviceState.UNAUTHORIZED,
       listener,
     );
-    expect(connection.getFormattedName()).toEqual('unauthorized Pixel (35562)');
+    expect(connection.getFormattedName()).toBe('unauthorized Pixel (35562)');
   });
 
   it('formats name for idle device', () => {
-    expect(connection.getFormattedName()).toEqual('Pixel (35562)');
+    expect(connection.getFormattedName()).toBe('Pixel (35562)');
   });
 
   it('updates availability of wayland trace if available', async () => {
@@ -164,10 +164,10 @@
       .withArgs(dumpsysCmd)
       .and.returnValue('Display 12345 Extra Info');
     await connection.updateProperties({});
-    expect(connection.getDisplays().length).toEqual(1);
+    expect(connection.getDisplays().length).toBe(1);
     runShellCmdSpy.withArgs(dumpsysCmd).and.returnValue('');
     await connection.updateProperties({});
-    expect(connection.getDisplays().length).toEqual(0);
+    expect(connection.getDisplays().length).toBe(0);
   });
 
   it('finds files via exact filepath', async () => {
diff --git a/tools/winscope/src/trace_collection/ui/ui_trace_configuration_test.ts b/tools/winscope/src/trace_collection/ui/ui_trace_configuration_test.ts
index 6dc823b..53a6d48 100644
--- a/tools/winscope/src/trace_collection/ui/ui_trace_configuration_test.ts
+++ b/tools/winscope/src/trace_collection/ui/ui_trace_configuration_test.ts
@@ -57,9 +57,9 @@
       selectionConfigs: [{name: 'new2', key: 'test2', options: ['1']}],
     };
     updateConfigs(sourceConfig);
-    expect(target[traceKey].config.checkboxConfigs[0].name).toEqual('test1');
+    expect(target[traceKey].config.checkboxConfigs[0].name).toBe('test1');
     const newSelectionConfig = target[traceKey].config.selectionConfigs[0];
-    expect(newSelectionConfig.name).toEqual('test2');
+    expect(newSelectionConfig.name).toBe('test2');
     expect(newSelectionConfig.options).toEqual([]);
   });
 
diff --git a/tools/winscope/src/trace_collection/wdp/sync_stream_test.ts b/tools/winscope/src/trace_collection/wdp/sync_stream_test.ts
index 3c0a0b8..4395ed0 100644
--- a/tools/winscope/src/trace_collection/wdp/sync_stream_test.ts
+++ b/tools/winscope/src/trace_collection/wdp/sync_stream_test.ts
@@ -242,7 +242,7 @@
       .build();
     setMessageResponses([messageData1, messageData2]);
     const receivedData = await stream.pullFile(testFilepath);
-    expect(utf8Decode(receivedData)).toEqual('tes');
+    expect(utf8Decode(receivedData)).toBe('tes');
   });
 
   it('pulls file data from blob', async () => {
diff --git a/tools/winscope/src/trace_collection/wdp/wdp_device_connection_test.ts b/tools/winscope/src/trace_collection/wdp/wdp_device_connection_test.ts
index f580dd5..e74190b 100644
--- a/tools/winscope/src/trace_collection/wdp/wdp_device_connection_test.ts
+++ b/tools/winscope/src/trace_collection/wdp/wdp_device_connection_test.ts
@@ -219,7 +219,7 @@
         [{command: 'test cmd', resps: ['cmd complete']}],
       );
       const output = await connection.runShellCommand('test cmd');
-      expect(output).toEqual('cmd complete');
+      expect(output).toBe('cmd complete');
       expect(listener.onConnectionStateChange).not.toHaveBeenCalled();
     });
 
@@ -229,7 +229,7 @@
         [{command: 'test cmd', resps: ['cmd ', 'complete']}],
       );
       const output = await connection.runShellCommand('test cmd');
-      expect(output).toEqual('cmd complete');
+      expect(output).toBe('cmd complete');
     });
 
     it('calls listener on shell command error', async () => {
@@ -240,7 +240,7 @@
         [{command: 'test cmd', resps: ['test error']}],
       );
       const output = await connection.runShellCommand('test cmd');
-      expect(output).toEqual('');
+      expect(output).toBe('');
       expect(listener.onError).toHaveBeenCalledTimes(1);
       listener.onError.calls.reset();
     });
diff --git a/tools/winscope/src/trace_collection/winscope_proxy/winscope_proxy_device_connection_test.ts b/tools/winscope/src/trace_collection/winscope_proxy/winscope_proxy_device_connection_test.ts
index 6b6e48e..d8fdf72 100644
--- a/tools/winscope/src/trace_collection/winscope_proxy/winscope_proxy_device_connection_test.ts
+++ b/tools/winscope/src/trace_collection/winscope_proxy/winscope_proxy_device_connection_test.ts
@@ -158,7 +158,7 @@
       };
       await setHttpSpies(successfulResponse);
       const output = await connection.runShellCommand('test cmd');
-      expect(output).toEqual('123');
+      expect(output).toBe('123');
       expect(postSpy).toHaveBeenCalledOnceWith(
         WINSCOPE_PROXY_URL + Endpoint.RUN_ADB_CMD + `${testId}/`,
         securityHeader,
@@ -176,7 +176,7 @@
       };
       await setHttpSpies(successfulResponse);
       const output = await connection.runShellCommand('');
-      expect(output).toEqual('123');
+      expect(output).toBe('123');
     });
 
     it('handles undefined output', async () => {
@@ -189,7 +189,7 @@
       };
       await setHttpSpies(successfulResponse);
       const output = await connection.runShellCommand('');
-      expect(output).toEqual('');
+      expect(output).toBe('');
     });
   });
 
diff --git a/tools/winscope/src/trace_collection/winscope_proxy/winscope_proxy_host_connection_test.ts b/tools/winscope/src/trace_collection/winscope_proxy/winscope_proxy_host_connection_test.ts
index 83a7c7b..f9cac82 100644
--- a/tools/winscope/src/trace_collection/winscope_proxy/winscope_proxy_host_connection_test.ts
+++ b/tools/winscope/src/trace_collection/winscope_proxy/winscope_proxy_host_connection_test.ts
@@ -319,8 +319,8 @@
     }
 
     function checkDeviceProperties(devices: AdbDeviceConnection[]) {
-      expect(devices.length).toEqual(1);
-      expect(devices[0].getFormattedName()).toEqual('Pixel 6 (35562)');
+      expect(devices.length).toBe(1);
+      expect(devices[0].getFormattedName()).toBe('Pixel 6 (35562)');
       expect(devices[0].getState()).toEqual(AdbDeviceState.AVAILABLE);
     }
   });
diff --git a/tools/winscope/src/viewers/common/abstract_hierarchy_viewer_presenter_test.ts b/tools/winscope/src/viewers/common/abstract_hierarchy_viewer_presenter_test.ts
index 95175f9..01091a3 100644
--- a/tools/winscope/src/viewers/common/abstract_hierarchy_viewer_presenter_test.ts
+++ b/tools/winscope/src/viewers/common/abstract_hierarchy_viewer_presenter_test.ts
@@ -147,7 +147,7 @@
           expect(uiData.rectSpec).toEqual(this.expectedInitialRectSpec);
 
           await presenter.onHighlightedIdChange(rect.id);
-          expect(uiData.highlightedItem).toEqual('');
+          expect(uiData.highlightedItem).toBe('');
         });
       }
 
diff --git a/tools/winscope/src/viewers/common/abstract_log_viewer_component_test.ts b/tools/winscope/src/viewers/common/abstract_log_viewer_component_test.ts
index 8ebfddc..b6bc2a7 100644
--- a/tools/winscope/src/viewers/common/abstract_log_viewer_component_test.ts
+++ b/tools/winscope/src/viewers/common/abstract_log_viewer_component_test.ts
@@ -113,9 +113,9 @@
           const logComponent = assertDefined(component.logComponent);
           expect(logComponent.isFetchingData).toBeFalse();
           expect(logComponent.checkScrollViewport).toBeFalse();
-          expect(logComponent.selectedIndex).not.toEqual(10);
-          expect(logComponent.scrollToIndex).not.toEqual(20);
-          expect(logComponent.currentIndex).not.toEqual(30);
+          expect(logComponent.selectedIndex).not.toBe(10);
+          expect(logComponent.scrollToIndex).not.toBe(20);
+          expect(logComponent.currentIndex).not.toBe(30);
 
           const inputData = assertDefined(component.inputData);
           inputData.checkScrollViewport = true;
@@ -127,9 +127,9 @@
 
           expect(logComponent.isFetchingData).toBeTrue();
           expect(logComponent.checkScrollViewport).toBeTrue();
-          expect(logComponent.selectedIndex).toEqual(10);
-          expect(logComponent.scrollToIndex).toEqual(20);
-          expect(logComponent.currentIndex).toEqual(30);
+          expect(logComponent.selectedIndex).toBe(10);
+          expect(logComponent.scrollToIndex).toBe(20);
+          expect(logComponent.currentIndex).toBe(30);
         });
 
         if (this.testProperties) {
@@ -177,7 +177,7 @@
           });
 
           it('gets data length', () => {
-            expect(viewport.getDataLength()).toEqual(200);
+            expect(viewport.getDataLength()).toBe(200);
           });
 
           it('should get the rendered range', () => {
diff --git a/tools/winscope/src/viewers/common/abstract_presenter_input_method_test.ts b/tools/winscope/src/viewers/common/abstract_presenter_input_method_test.ts
index 28c6ab7..9980af4 100644
--- a/tools/winscope/src/viewers/common/abstract_presenter_input_method_test.ts
+++ b/tools/winscope/src/viewers/common/abstract_presenter_input_method_test.ts
@@ -166,14 +166,14 @@
 
   override executePropertiesChecksAfterPositionUpdate(uiData: UiDataHierarchy) {
     const trees = assertDefined(uiData.hierarchyTrees);
-    expect(trees.length).toEqual(this.numberOfNestedChildren);
+    expect(trees.length).toBe(this.numberOfNestedChildren);
   }
 
   override executePropertiesChecksAfterSecondPositionUpdate(
     uiData: UiDataHierarchy,
   ) {
     const trees = assertDefined(uiData.hierarchyTrees);
-    expect(trees.length).toEqual(1);
+    expect(trees.length).toBe(1);
   }
 
   override executeSpecializedTests() {
@@ -276,7 +276,7 @@
 
         await presenter.onHighlightedIdChange(selectedTree.id);
         expect(uiData.propertiesTree).toEqual(propertiesTree);
-        expect(uiData.highlightedItem).toEqual('');
+        expect(uiData.highlightedItem).toBe('');
       });
 
       if (this.getPropertiesTree) {
diff --git a/tools/winscope/src/viewers/common/add_diffs_properties_tree_test.ts b/tools/winscope/src/viewers/common/add_diffs_properties_tree_test.ts
index 9aebe85..e7e45b5 100644
--- a/tools/winscope/src/viewers/common/add_diffs_properties_tree_test.ts
+++ b/tools/winscope/src/viewers/common/add_diffs_properties_tree_test.ts
@@ -93,7 +93,7 @@
 
         await addDiffs.executeInPlace(newRoot, oldRoot);
         expect(newRoot).toEqual(expectedRoot);
-        expect(newRoot.getChildByName('child')?.getOldValue()).toEqual('null');
+        expect(newRoot.getChildByName('child')?.getOldValue()).toBe('null');
       });
 
       it('processes MODIFIED node by setting old value to old formatted value', async () => {
@@ -105,7 +105,7 @@
 
         await addDiffs.executeInPlace(newRoot, oldRoot);
         expect(newRoot).toEqual(expectedRoot);
-        expect(newRoot.getChildByName('child')?.getOldValue()).toEqual('old');
+        expect(newRoot.getChildByName('child')?.getOldValue()).toBe('old');
       });
 
       it('processes MODIFIED flag values into diff value parts', async () => {
diff --git a/tools/winscope/src/viewers/common/hierarchy_presenter_test.ts b/tools/winscope/src/viewers/common/hierarchy_presenter_test.ts
index c48ff24..f3e8554 100644
--- a/tools/winscope/src/viewers/common/hierarchy_presenter_test.ts
+++ b/tools/winscope/src/viewers/common/hierarchy_presenter_test.ts
@@ -131,8 +131,8 @@
   });
 
   it('updates current and previous entries for trace', async () => {
-    expect(presenter.getAllCurrentHierarchyTrees()?.length).toEqual(0);
-    expect(presenter.getAllFormattedTrees()?.length).toEqual(0);
+    expect(presenter.getAllCurrentHierarchyTrees()?.length).toBe(0);
+    expect(presenter.getAllFormattedTrees()?.length).toBe(0);
 
     await presenter.applyTracePositionUpdate(
       [trace.getEntry(1), secondTrace.getEntry(0)],
@@ -142,12 +142,10 @@
     expect(presenter.getCurrentEntryForTrace(secondTrace)).toEqual(
       secondTrace.getEntry(0),
     );
-    expect(presenter.getCurrentHierarchyTreesForTrace(trace)?.length).toEqual(
-      1,
-    );
-    expect(presenter.getAllCurrentHierarchyTrees()?.length).toEqual(2);
-    expect(presenter.getAllFormattedTrees()?.length).toEqual(2);
-    expect(presenter.getFormattedTreesByTrace(trace)?.length).toEqual(1);
+    expect(presenter.getCurrentHierarchyTreesForTrace(trace)?.length).toBe(1);
+    expect(presenter.getAllCurrentHierarchyTrees()?.length).toBe(2);
+    expect(presenter.getAllFormattedTrees()?.length).toBe(2);
+    expect(presenter.getFormattedTreesByTrace(trace)?.length).toBe(1);
     expect(presenter.getPreviousHierarchyTreeForTrace(trace)).toBeUndefined();
     expect(
       presenter.getPreviousHierarchyTreeForTrace(secondTrace),
@@ -177,12 +175,10 @@
       undefined,
     );
     expect(presenter.getCurrentEntryForTrace(trace)).toBeUndefined();
-    expect(presenter.getCurrentHierarchyTreesForTrace(trace)?.length).toEqual(
-      1,
-    );
-    expect(presenter.getAllCurrentHierarchyTrees()?.length).toEqual(1);
-    expect(presenter.getAllFormattedTrees()?.length).toEqual(1);
-    expect(presenter.getFormattedTreesByTrace(trace)?.length).toEqual(1);
+    expect(presenter.getCurrentHierarchyTreesForTrace(trace)?.length).toBe(1);
+    expect(presenter.getAllCurrentHierarchyTrees()?.length).toBe(1);
+    expect(presenter.getAllFormattedTrees()?.length).toBe(1);
+    expect(presenter.getFormattedTreesByTrace(trace)?.length).toBe(1);
 
     const entry = secondTrace.getEntry(0);
     await presenter.addCurrentHierarchyTrees(
@@ -199,9 +195,7 @@
       {trace, trees: [tree2]},
       undefined,
     );
-    expect(presenter.getCurrentHierarchyTreesForTrace(trace)?.length).toEqual(
-      2,
-    );
+    expect(presenter.getCurrentHierarchyTreesForTrace(trace)?.length).toBe(2);
     const formattedTrees = assertDefined(presenter.getAllFormattedTrees());
     expect(presenter.getAllCurrentHierarchyTrees()).toEqual([
       {
@@ -217,8 +211,8 @@
         entry,
       },
     ]);
-    expect(formattedTrees.length).toEqual(3);
-    expect(presenter.getFormattedTreesByTrace(trace)?.length).toEqual(2);
+    expect(formattedTrees.length).toBe(3);
+    expect(presenter.getFormattedTreesByTrace(trace)?.length).toBe(2);
   });
 
   it('updates previous hierarchy trees', async () => {
@@ -325,22 +319,22 @@
     expect(presenter.getCurrentHierarchyTreeNames(trace)).toBeUndefined();
     await applyTracePositionUpdate();
     const node = assertDefined(presenter.getAllFormattedTrees()?.at(0));
-    expect(node.name).toEqual('entry');
-    expect(node.getDisplayName()).toEqual(testName);
+    expect(node.name).toBe('entry');
+    expect(node.getDisplayName()).toBe(testName);
     expect(presenter.getCurrentHierarchyTreeNames(trace)).toEqual([testName]);
   });
 
   it('disables headings based on showHeading', async () => {
     await applyTracePositionUpdate();
     let node = assertDefined(presenter.getAllFormattedTrees()?.at(0));
-    expect(node.name).toEqual('entry');
+    expect(node.name).toBe('entry');
     expect(node.heading()).toBeUndefined();
 
     presenter = new HierarchyPresenter({}, new TextFilter(), [], true, false);
     await applyTracePositionUpdate();
     node = assertDefined(presenter.getAllFormattedTrees()?.at(0));
-    expect(node.name).toEqual('entry');
-    expect(node.heading()).toEqual('Test');
+    expect(node.name).toBe('entry');
+    expect(node.heading()).toBe('Test');
   });
 
   it('selects first node based on forceSelectFirstNode', async () => {
@@ -387,11 +381,11 @@
 
   it('flattens hierarchy tree based on user option', async () => {
     await applyTracePositionUpdate();
-    expect(getTotalHierarchyChildren()).toEqual(2);
+    expect(getTotalHierarchyChildren()).toBe(2);
     await presenter.applyHierarchyUserOptionsChange({
       flat: {name: '', enabled: true},
     });
-    expect(getTotalHierarchyChildren()).toEqual(3);
+    expect(getTotalHierarchyChildren()).toBe(3);
   });
 
   it('filters hierarchy tree by visibility based on user option', async () => {
@@ -401,7 +395,7 @@
     };
     await presenter.applyHierarchyUserOptionsChange(userOptions);
     await applyTracePositionUpdate();
-    expect(getTotalHierarchyChildren()).toEqual(3);
+    expect(getTotalHierarchyChildren()).toBe(3);
 
     const nonVisibleNode = assertDefined(
       getFormattedTree()?.findDfs(
@@ -414,7 +408,7 @@
 
     userOptions['showOnlyVisible'].enabled = true;
     await presenter.applyHierarchyUserOptionsChange(userOptions);
-    expect(getTotalHierarchyChildren()).toEqual(2);
+    expect(getTotalHierarchyChildren()).toBe(2);
     expect(presenter.getPinnedItems()).toEqual([nonVisibleNode]); // keeps pinned node
 
     presenter.clear(); // robust to no current entries
@@ -425,7 +419,7 @@
     const userOptions: UserOptions = {flat: {name: '', enabled: true}};
     await presenter.applyHierarchyUserOptionsChange(userOptions);
     await applyTracePositionUpdate();
-    expect(getTotalHierarchyChildren()).toEqual(3);
+    expect(getTotalHierarchyChildren()).toBe(3);
 
     const filterString = 'Parent';
     const nonMatchNode = assertDefined(
@@ -438,7 +432,7 @@
     const filter = new TextFilter(filterString);
     await presenter.applyHierarchyFilterChange(filter);
     expect(presenter.getTextFilter()).toEqual(filter);
-    expect(getTotalHierarchyChildren()).toEqual(2);
+    expect(getTotalHierarchyChildren()).toBe(2);
     expect(presenter.getPinnedItems()).toEqual([nonMatchNode]); // keeps pinned node
 
     presenter.clear(); // robust to no current entries
@@ -540,7 +534,7 @@
 
     const storage = new InMemoryStorage();
     const adj = presenter.getAdjacentVisibleNode(storage, false);
-    expect(adj?.id).toEqual('3 Child3');
+    expect(adj?.id).toBe('3 Child3');
 
     // next node is hidden so recursively finds next visible node
     storage.add(p1.id + '.collapsedState', 'true');
@@ -552,7 +546,7 @@
   it('gets next visible node as first root if no node selected', async () => {
     await applyTracePositionUpdate();
     const adj = presenter.getAdjacentVisibleNode(new InMemoryStorage(), false);
-    expect(adj?.id).toEqual('Test Trace entry');
+    expect(adj?.id).toBe('Test Trace entry');
   });
 
   it('gets next visible node if selected node is final node of tree', async () => {
@@ -611,7 +605,7 @@
 
     const storage = new InMemoryStorage();
     const adj = presenter.getAdjacentVisibleNode(storage, true);
-    expect(adj?.id).toEqual('3 Child3');
+    expect(adj?.id).toBe('3 Child3');
 
     // prev node is hidden so recursively finds prev visible node
     storage.add(p2?.id + '.collapsedState', 'true');
@@ -623,7 +617,7 @@
   it('gets prev visible node as first root if no node selected', async () => {
     await applyTracePositionUpdate();
     const adj = presenter.getAdjacentVisibleNode(new InMemoryStorage(), true);
-    expect(adj?.id).toEqual('Test Trace entry');
+    expect(adj?.id).toBe('Test Trace entry');
   });
 
   it('gets prev visible node if selected node is first node of tree', async () => {
diff --git a/tools/winscope/src/viewers/common/hierarchy_viewer_presenter_test.ts b/tools/winscope/src/viewers/common/hierarchy_viewer_presenter_test.ts
index e7afb4c..4942255 100644
--- a/tools/winscope/src/viewers/common/hierarchy_viewer_presenter_test.ts
+++ b/tools/winscope/src/viewers/common/hierarchy_viewer_presenter_test.ts
@@ -151,9 +151,9 @@
       );
       expect(uiData.hierarchyTrees).toBeUndefined();
       expect(uiData.propertiesTree).toBeUndefined();
-      expect(uiData.highlightedItem).toEqual('');
-      expect(uiData.highlightedProperty).toEqual('');
-      expect(uiData.pinnedItems.length).toEqual(0);
+      expect(uiData.highlightedItem).toBe('');
+      expect(uiData.highlightedProperty).toBe('');
+      expect(uiData.pinnedItems.length).toBe(0);
       expect(
         Object.keys(assertDefined(uiData?.rectsUserOptions)).length,
       ).toBeGreaterThan(0);
@@ -166,7 +166,7 @@
     pinNode(selectedTree);
     await presenter.onAppEvent(positionUpdate);
 
-    expect(uiData.highlightedItem?.length).toEqual(0);
+    expect(uiData.highlightedItem?.length).toBe(0);
     expect(Object.keys(uiData.hierarchyUserOptions).length).toBeGreaterThan(0);
     expect(Object.keys(uiData.propertiesUserOptions).length).toBeGreaterThan(0);
     assertDefined(uiData.hierarchyTrees).forEach((tree) => {
@@ -188,7 +188,7 @@
       ),
     );
     expect(uiData.hierarchyTrees).toBeUndefined();
-    expect(uiData.pinnedItems.length).toEqual(0);
+    expect(uiData.pinnedItems.length).toBe(0);
     expect(uiData.rectsToDraw).toEqual([]);
     expect(uiData.displays).toEqual([]);
     expect(uiData.propertiesTree).toBeUndefined();
@@ -398,7 +398,7 @@
     const userOptions: UserOptions = {flat: {name: '', enabled: true}};
     await presenter.onHierarchyUserOptionsChange(userOptions);
     expect(uiData.hierarchyUserOptions).toEqual(userOptions);
-    expect(uiData.hierarchyTrees?.at(0)?.getAllChildren().length).toEqual(3);
+    expect(uiData.hierarchyTrees?.at(0)?.getAllChildren().length).toBe(3);
   });
 
   it('updates highlighted property', () => {
@@ -406,7 +406,7 @@
     presenter.onHighlightedPropertyChange(id);
     expect(uiData.highlightedProperty).toEqual(id);
     presenter.onHighlightedPropertyChange(id);
-    expect(uiData.highlightedProperty).toEqual('');
+    expect(uiData.highlightedProperty).toBe('');
   });
 
   it('sets properties tree and associated ui data from tree node', async () => {
@@ -414,7 +414,7 @@
     await presenter.onHighlightedNodeChange(selectedTree);
     const propertiesTree = assertDefined(uiData.propertiesTree);
     expect(propertiesTree.id).toContain(selectedTree.id);
-    expect(propertiesTree.getAllChildren().length).toEqual(2);
+    expect(propertiesTree.getAllChildren().length).toBe(2);
   });
 
   it('updates and applies properties user options, calculating diffs from prev hierarchy tree', async () => {
diff --git a/tools/winscope/src/viewers/common/ime_utils_test.ts b/tools/winscope/src/viewers/common/ime_utils_test.ts
index 22985a7..712a483 100644
--- a/tools/winscope/src/viewers/common/ime_utils_test.ts
+++ b/tools/winscope/src/viewers/common/ime_utils_test.ts
@@ -94,7 +94,7 @@
         ?.getChildByName('identifier')
         ?.getChildByName('title')
         ?.getValue(),
-    ).toEqual('SnapshotStartingWindow for taskId=1393');
+    ).toBe('SnapshotStartingWindow for taskId=1393');
 
     expect(processed.wmStateProperties.isInputMethodWindowVisible).toBeFalse();
   });
@@ -136,19 +136,19 @@
     expect(inputMethodSurface.screenBounds).toBeDefined();
 
     const imeContainer = assertDefined(layers.properties.imeContainer);
-    expect(imeContainer.id).toEqual('12 ImeContainer#12');
-    expect(imeContainer.z).toEqual(1);
-    expect(imeContainer.zOrderRelativeOfId).toEqual(115);
+    expect(imeContainer.id).toBe('12 ImeContainer#12');
+    expect(imeContainer.z).toBe(1);
+    expect(imeContainer.zOrderRelativeOfId).toBe(115);
 
     expect(
       assertDefined(layers.properties.focusedWindowColor).formattedValue(),
-    ).toEqual('(0, 0, 0), alpha: 1');
+    ).toBe('(0, 0, 0), alpha: 1');
 
     const taskLayerOfImeContainer = assertDefined(
       layers.taskLayerOfImeContainer,
     );
-    expect(taskLayerOfImeContainer.id).toEqual('114 Task=1391#114');
-    expect(taskLayerOfImeContainer.name).toEqual('Task=1391#114');
+    expect(taskLayerOfImeContainer.id).toBe('114 Task=1391#114');
+    expect(taskLayerOfImeContainer.name).toBe('Task=1391#114');
 
     expect(layers.taskLayerOfImeSnapshot).toBeUndefined();
   });
diff --git a/tools/winscope/src/viewers/common/log_presenter_test.ts b/tools/winscope/src/viewers/common/log_presenter_test.ts
index fec3035..5e67be0 100644
--- a/tools/winscope/src/viewers/common/log_presenter_test.ts
+++ b/tools/winscope/src/viewers/common/log_presenter_test.ts
@@ -115,45 +115,45 @@
     it('applies log entry click', () => {
       // selects index
       presenter.applyLogEntryClick(1);
-      expect(presenter.getSelectedIndex()).toEqual(1);
+      expect(presenter.getSelectedIndex()).toBe(1);
       expect(presenter.getCurrentIndex()).toBeUndefined();
       expect(presenter.getScrollToIndex()).toBeUndefined();
 
       // on same index, clears scroll but leaves current and selected unchanged
       presenter.applyTracePositionUpdate(trace.getEntry(0));
       presenter.applyLogEntryClick(1);
-      expect(presenter.getSelectedIndex()).toEqual(1);
-      expect(presenter.getCurrentIndex()).toEqual(0);
+      expect(presenter.getSelectedIndex()).toBe(1);
+      expect(presenter.getCurrentIndex()).toBe(0);
       expect(presenter.getScrollToIndex()).toBeUndefined();
     });
 
     it('applies arrow down press', () => {
       // selects and scrolls to first index if no selected or current index
       presenter.applyArrowDownPress();
-      expect(presenter.getSelectedIndex()).toEqual(0);
-      expect(presenter.getScrollToIndex()).toEqual(0);
+      expect(presenter.getSelectedIndex()).toBe(0);
+      expect(presenter.getScrollToIndex()).toBe(0);
       expect(presenter.getCurrentIndex()).toBeUndefined();
 
       // selects next index after selected index
       presenter.applyArrowDownPress();
-      expect(presenter.getSelectedIndex()).toEqual(1);
-      expect(presenter.getScrollToIndex()).toEqual(1);
+      expect(presenter.getSelectedIndex()).toBe(1);
+      expect(presenter.getScrollToIndex()).toBe(1);
       expect(presenter.getCurrentIndex()).toBeUndefined();
 
       // handles index out of range
       presenter.applyArrowDownPress();
       presenter.applyArrowDownPress();
       presenter.applyArrowDownPress();
-      expect(presenter.getSelectedIndex()).toEqual(3);
-      expect(presenter.getScrollToIndex()).toEqual(3);
+      expect(presenter.getSelectedIndex()).toBe(3);
+      expect(presenter.getScrollToIndex()).toBe(3);
       expect(presenter.getCurrentIndex()).toBeUndefined();
 
       // selects next index after current index
       presenter.applyTracePositionUpdate(trace.getEntry(0));
       presenter.applyArrowDownPress();
-      expect(presenter.getSelectedIndex()).toEqual(1);
-      expect(presenter.getScrollToIndex()).toEqual(1);
-      expect(presenter.getCurrentIndex()).toEqual(0);
+      expect(presenter.getSelectedIndex()).toBe(1);
+      expect(presenter.getScrollToIndex()).toBe(1);
+      expect(presenter.getCurrentIndex()).toBe(0);
 
       // handles no entries
       presenter.setAllEntries([]);
@@ -164,31 +164,31 @@
     it('applies arrow up press', () => {
       // selects first index if no selected or current index
       presenter.applyArrowUpPress();
-      expect(presenter.getSelectedIndex()).toEqual(0);
-      expect(presenter.getScrollToIndex()).toEqual(0);
+      expect(presenter.getSelectedIndex()).toBe(0);
+      expect(presenter.getScrollToIndex()).toBe(0);
       expect(presenter.getCurrentIndex()).toBeUndefined();
 
       // selects index before selected index
       presenter.applyLogEntryClick(2);
       presenter.applyArrowUpPress();
-      expect(presenter.getSelectedIndex()).toEqual(1);
-      expect(presenter.getScrollToIndex()).toEqual(1);
+      expect(presenter.getSelectedIndex()).toBe(1);
+      expect(presenter.getScrollToIndex()).toBe(1);
       expect(presenter.getCurrentIndex()).toBeUndefined();
 
       // handles index out of range
       presenter.applyArrowUpPress();
       presenter.applyArrowUpPress();
       presenter.applyArrowUpPress();
-      expect(presenter.getSelectedIndex()).toEqual(0);
-      expect(presenter.getScrollToIndex()).toEqual(0);
+      expect(presenter.getSelectedIndex()).toBe(0);
+      expect(presenter.getScrollToIndex()).toBe(0);
       expect(presenter.getCurrentIndex()).toBeUndefined();
 
       // selects index before current index
       presenter.applyTracePositionUpdate(trace.getEntry(1));
       presenter.applyArrowUpPress();
-      expect(presenter.getSelectedIndex()).toEqual(0);
-      expect(presenter.getScrollToIndex()).toEqual(0);
-      expect(presenter.getCurrentIndex()).toEqual(1);
+      expect(presenter.getSelectedIndex()).toBe(0);
+      expect(presenter.getScrollToIndex()).toBe(0);
+      expect(presenter.getCurrentIndex()).toBe(1);
 
       // handles no entries
       presenter.setAllEntries([]);
@@ -199,9 +199,9 @@
     it('applies trace position update', () => {
       // updates current index, clears selected index, scrolls to current index
       presenter.applyTracePositionUpdate(trace.getEntry(1));
-      expect(presenter.getCurrentIndex()).toEqual(1);
+      expect(presenter.getCurrentIndex()).toBe(1);
       expect(presenter.getSelectedIndex()).toBeUndefined();
-      expect(presenter.getScrollToIndex()).toEqual(1);
+      expect(presenter.getScrollToIndex()).toBe(1);
 
       // if no current entry, current index undefined
       presenter.applyTracePositionUpdate(undefined);
@@ -215,9 +215,9 @@
         testEntries[2],
       ]);
       presenter.applyTracePositionUpdate(trace.getEntry(1));
-      expect(presenter.getCurrentIndex()).toEqual(1);
+      expect(presenter.getCurrentIndex()).toBe(1);
       expect(presenter.getSelectedIndex()).toBeUndefined();
-      expect(presenter.getScrollToIndex()).toEqual(1);
+      expect(presenter.getScrollToIndex()).toBe(1);
 
       // handles no filtered entries
       updateStringFilterAndCheckEntries('no matches', []);
@@ -238,14 +238,14 @@
       expectAllIndicesUndefined();
 
       presenter.applyTracePositionUpdate(trace.getEntry(1));
-      expect(presenter.getCurrentIndex()).toEqual(2);
+      expect(presenter.getCurrentIndex()).toBe(2);
       expect(presenter.getSelectedIndex()).toBeUndefined();
-      expect(presenter.getScrollToIndex()).toEqual(2);
+      expect(presenter.getScrollToIndex()).toBe(2);
 
       presenter.applyTracePositionUpdate(trace.getEntry(3));
-      expect(presenter.getCurrentIndex()).toEqual(0);
+      expect(presenter.getCurrentIndex()).toBe(0);
       expect(presenter.getSelectedIndex()).toBeUndefined();
-      expect(presenter.getScrollToIndex()).toEqual(0);
+      expect(presenter.getScrollToIndex()).toBe(0);
     });
 
     it('applies text filter change', () => {
diff --git a/tools/winscope/src/viewers/common/log_viewer_presenter_test.ts b/tools/winscope/src/viewers/common/log_viewer_presenter_test.ts
index bf631f0..594c74d 100644
--- a/tools/winscope/src/viewers/common/log_viewer_presenter_test.ts
+++ b/tools/winscope/src/viewers/common/log_viewer_presenter_test.ts
@@ -213,7 +213,7 @@
     expect(uiData.scrollToIndex).toBeUndefined();
     expect(uiData.currentIndex).toBeUndefined();
     expect(uiData.selectedIndex).toBeUndefined();
-    expect(uiData.entries.length).toEqual(0);
+    expect(uiData.entries.length).toBe(0);
     expect(uiData.propertiesTree).toBeUndefined();
     expect(uiData.headers).toEqual([]);
 
@@ -222,11 +222,11 @@
     expect(uiData.scrollToIndex).toBeDefined();
     expect(uiData.currentIndex).toBeDefined();
     expect(uiData.selectedIndex).toBeUndefined();
-    expect(uiData.entries.length).toEqual(4);
+    expect(uiData.entries.length).toBe(4);
     expect(assertDefined(uiData.propertiesTree).id).toEqual(
       (await getPropertiesTree(0)).id,
     );
-    expect(uiData.headers.length).toEqual(3);
+    expect(uiData.headers.length).toBe(3);
     expect((uiData.headers[0].filter as LogSelectFilter).options).toEqual([
       'stringValue',
       'differentValue',
@@ -235,7 +235,7 @@
 
   it('processes trace position update and updates ui data', async () => {
     await sendPositionUpdate(secondPositionUpdate, true);
-    expect(uiData.currentIndex).toEqual(1);
+    expect(uiData.currentIndex).toBe(1);
     expect(assertDefined(uiData.propertiesTree).id).toEqual(
       (await getPropertiesTree(1)).id,
     );
@@ -411,21 +411,21 @@
   it('updates indices when filters change', async () => {
     await sendPositionUpdate(lastEntryPositionUpdate, true);
     presenter.onLogEntryClick(1);
-    expect(uiData.currentIndex).toEqual(3);
-    expect(uiData.selectedIndex).toEqual(1);
+    expect(uiData.currentIndex).toBe(3);
+    expect(uiData.selectedIndex).toBe(1);
 
     const header = uiData.headers[1];
     await presenter.onSelectFilterChange(header, ['0']);
-    expect(uiData.currentIndex).toEqual(0);
-    expect(uiData.selectedIndex).toEqual(0);
+    expect(uiData.currentIndex).toBe(0);
+    expect(uiData.selectedIndex).toBe(0);
 
     await presenter.onSelectFilterChange(header, ['0', '2']);
-    expect(uiData.currentIndex).toEqual(1);
-    expect(uiData.selectedIndex).toEqual(0);
+    expect(uiData.currentIndex).toBe(1);
+    expect(uiData.selectedIndex).toBe(0);
 
     await presenter.onSelectFilterChange(header, []);
-    expect(uiData.currentIndex).toEqual(3);
-    expect(uiData.selectedIndex).toEqual(0);
+    expect(uiData.currentIndex).toBe(3);
+    expect(uiData.selectedIndex).toBe(0);
   });
 
   it('updates properties tree when entry clicked', async () => {
@@ -446,7 +446,7 @@
     await presenter.onLogEntryClick(0);
 
     await presenter.onArrowDownPress();
-    expect(uiData.selectedIndex).toEqual(1);
+    expect(uiData.selectedIndex).toBe(1);
     expect(assertDefined(uiData.propertiesTree).id).toEqual(
       (await getPropertiesTree(1)).id,
     );
@@ -454,18 +454,18 @@
     const expectedId0 = (await getPropertiesTree(0)).id;
 
     await presenter.onArrowUpPress();
-    expect(uiData.selectedIndex).toEqual(0);
+    expect(uiData.selectedIndex).toBe(0);
     expect(assertDefined(uiData.propertiesTree).id).toEqual(expectedId0);
 
     // does not remove selection if index out of range
     await presenter.onArrowUpPress();
-    expect(uiData.selectedIndex).toEqual(0);
+    expect(uiData.selectedIndex).toBe(0);
     expect(assertDefined(uiData.propertiesTree).id).toEqual(expectedId0);
 
     // does not remove selection if index out of range
     await presenter.onLogEntryClick(3);
     await presenter.onArrowDownPress();
-    expect(uiData.selectedIndex).toEqual(3);
+    expect(uiData.selectedIndex).toBe(3);
     expect(assertDefined(uiData.propertiesTree).id).toEqual(
       (await getPropertiesTree(3)).id,
     );
@@ -496,20 +496,20 @@
 
   it('filters properties tree', async () => {
     await sendPositionUpdate(positionUpdate, true);
-    expect(
-      assertDefined(uiData.propertiesTree).getAllChildren().length,
-    ).toEqual(3);
+    expect(assertDefined(uiData.propertiesTree).getAllChildren().length).toBe(
+      3,
+    );
     await presenter.onPropertiesFilterChange(new TextFilter('pass'));
-    expect(
-      assertDefined(uiData.propertiesTree).getAllChildren().length,
-    ).toEqual(2);
+    expect(assertDefined(uiData.propertiesTree).getAllChildren().length).toBe(
+      2,
+    );
   });
 
   it('shows/hides defaults', async () => {
     await sendPositionUpdate(positionUpdate, true);
-    expect(
-      assertDefined(uiData.propertiesTree).getAllChildren().length,
-    ).toEqual(3);
+    expect(assertDefined(uiData.propertiesTree).getAllChildren().length).toBe(
+      3,
+    );
     const userOptions: UserOptions = {
       showDefaults: {
         name: 'Show defaults',
@@ -518,9 +518,9 @@
     };
     await presenter.onPropertiesUserOptionsChange(userOptions);
     expect(uiData.propertiesUserOptions).toEqual(userOptions);
-    expect(
-      assertDefined(uiData.propertiesTree).getAllChildren().length,
-    ).toEqual(4);
+    expect(assertDefined(uiData.propertiesTree).getAllChildren().length).toBe(
+      4,
+    );
   });
 
   it('updates dark mode', async () => {
@@ -549,7 +549,7 @@
     expect(uiData.selectedIndex).toBeUndefined();
     expect(uiData.scrollToIndex).toBeUndefined();
     expect(uiData.currentIndex).toBeUndefined();
-    expect(uiData.headers.length).toEqual(3);
+    expect(uiData.headers.length).toBe(3);
     expect(uiData.propertiesTree).toBeUndefined();
     expect(uiData.propertiesUserOptions).toBeDefined();
     expect(uiData.propertiesFilter).toBeDefined();
diff --git a/tools/winscope/src/viewers/common/operations/flatten_children_test.ts b/tools/winscope/src/viewers/common/operations/flatten_children_test.ts
index 60ab5fc..cd2fbad 100644
--- a/tools/winscope/src/viewers/common/operations/flatten_children_test.ts
+++ b/tools/winscope/src/viewers/common/operations/flatten_children_test.ts
@@ -48,7 +48,7 @@
     }
 
     operation.apply(hierarchyRoot);
-    expect(hierarchyRoot.getAllChildren().length).toEqual(10);
+    expect(hierarchyRoot.getAllChildren().length).toBe(10);
   });
 
   it('flattens children in expected order for multiple root children', () => {
@@ -112,8 +112,8 @@
       });
       hierarchyRoot.addOrReplaceChild(child);
     }
-    expect(hierarchyRoot.getAllChildren().length).toEqual(10);
+    expect(hierarchyRoot.getAllChildren().length).toBe(10);
     operation.apply(hierarchyRoot);
-    expect(hierarchyRoot.getAllChildren().length).toEqual(10);
+    expect(hierarchyRoot.getAllChildren().length).toBe(10);
   });
 });
diff --git a/tools/winscope/src/viewers/common/operations/simplify_names_test.ts b/tools/winscope/src/viewers/common/operations/simplify_names_test.ts
index a0d5557..63b787b 100644
--- a/tools/winscope/src/viewers/common/operations/simplify_names_test.ts
+++ b/tools/winscope/src/viewers/common/operations/simplify_names_test.ts
@@ -44,7 +44,7 @@
     hierarchyRoot
       .getAllChildren()
       .forEach((child) =>
-        expect(child.getDisplayName()).toEqual('node.child.(...).child'),
+        expect(child.getDisplayName()).toBe('node.child.(...).child'),
       );
   });
 
@@ -65,6 +65,6 @@
     operation.apply(hierarchyRoot);
     hierarchyRoot
       .getAllChildren()
-      .forEach((child) => expect(child.getDisplayName()).toEqual('node.child'));
+      .forEach((child) => expect(child.getDisplayName()).toBe('node.child'));
   });
 });
diff --git a/tools/winscope/src/viewers/common/operations/update_sf_subtree_display_names_test.ts b/tools/winscope/src/viewers/common/operations/update_sf_subtree_display_names_test.ts
index 240c887..0e6e63e 100644
--- a/tools/winscope/src/viewers/common/operations/update_sf_subtree_display_names_test.ts
+++ b/tools/winscope/src/viewers/common/operations/update_sf_subtree_display_names_test.ts
@@ -31,6 +31,6 @@
     );
 
     operation.apply(hierarchyRoot);
-    expect(hierarchyRoot.getDisplayName()).toEqual('SfSubtree - Task');
+    expect(hierarchyRoot.getDisplayName()).toBe('SfSubtree - Task');
   });
 });
diff --git a/tools/winscope/src/viewers/common/properties_presenter_test.ts b/tools/winscope/src/viewers/common/properties_presenter_test.ts
index bd87bc2..7b82829 100644
--- a/tools/winscope/src/viewers/common/properties_presenter_test.ts
+++ b/tools/winscope/src/viewers/common/properties_presenter_test.ts
@@ -61,12 +61,12 @@
   });
 
   it('updates highlighted property', () => {
-    expect(presenter.getHighlightedProperty()).toEqual('');
+    expect(presenter.getHighlightedProperty()).toBe('');
     const id = '4';
     presenter.applyHighlightedPropertyChange(id);
     expect(presenter.getHighlightedProperty()).toEqual(id);
     presenter.applyHighlightedPropertyChange(id);
-    expect(presenter.getHighlightedProperty()).toEqual('');
+    expect(presenter.getHighlightedProperty()).toBe('');
   });
 
   it('updates properties tree to show diffs based on user option', async () => {
@@ -88,29 +88,29 @@
   });
 
   it('shows/hides defaults based on user option', async () => {
-    expect((await getFormattedTree()).getAllChildren().length).toEqual(2);
+    expect((await getFormattedTree()).getAllChildren().length).toBe(2);
     presenter.applyPropertiesUserOptionsChange({
       showDefaults: {name: '', enabled: true},
     });
-    expect((await getFormattedTree()).getAllChildren().length).toEqual(3);
+    expect((await getFormattedTree()).getAllChildren().length).toBe(3);
   });
 
   it('filters properties tree', async () => {
-    expect((await getFormattedTree()).getAllChildren().length).toEqual(2);
+    expect((await getFormattedTree()).getAllChildren().length).toBe(2);
     const filter = new TextFilter('setProp');
     presenter.applyPropertiesFilterChange(filter);
     expect(presenter.getTextFilter()).toEqual(filter);
-    expect((await getFormattedTree()).getAllChildren().length).toEqual(1);
+    expect((await getFormattedTree()).getAllChildren().length).toBe(1);
   });
 
   it('keeps calculated properties', async () => {
     const tree = await getFormattedTree(undefined, undefined, true);
-    expect(tree.getAllChildren().length).toEqual(3);
+    expect(tree.getAllChildren().length).toBe(3);
   });
 
   it('overrides display name', async () => {
     const tree = await getFormattedTree(undefined, 'Override Name');
-    expect(tree.getDisplayName()).toEqual('Override Name');
+    expect(tree.getDisplayName()).toBe('Override Name');
   });
 
   it('keeps allowlist default properties', async () => {
diff --git a/tools/winscope/src/viewers/common/ui_hierarchy_tree_node_test.ts b/tools/winscope/src/viewers/common/ui_hierarchy_tree_node_test.ts
index 068adbe..be3f282 100644
--- a/tools/winscope/src/viewers/common/ui_hierarchy_tree_node_test.ts
+++ b/tools/winscope/src/viewers/common/ui_hierarchy_tree_node_test.ts
@@ -38,7 +38,7 @@
 
   it('transfers rects', () => {
     const nodeNoRects = UiHierarchyTreeNode.from(node);
-    expect(nodeNoRects.getRects()).toEqual(undefined);
+    expect(nodeNoRects.getRects()).toBeUndefined();
     const rects = [
       new TraceRectBuilder()
         .setX(0)
@@ -76,7 +76,7 @@
 
   it('formats id as heading', () => {
     const uiNode = UiHierarchyTreeNode.from(node);
-    expect(uiNode.heading()).toEqual('1');
+    expect(uiNode.heading()).toBe('1');
     uiNode.setShowHeading(false);
     expect(uiNode.heading()).toBeUndefined();
   });
diff --git a/tools/winscope/src/viewers/components/collapsed_sections_component_test.ts b/tools/winscope/src/viewers/components/collapsed_sections_component_test.ts
index e0847f6..f9021c8 100644
--- a/tools/winscope/src/viewers/components/collapsed_sections_component_test.ts
+++ b/tools/winscope/src/viewers/components/collapsed_sections_component_test.ts
@@ -60,7 +60,7 @@
 
   it('displays only collapsed sections', () => {
     let sections = dom.findAll('.collapsed-section');
-    expect(sections.length).toEqual(1);
+    expect(sections.length).toBe(1);
     sections[0].checkText('HIERARCHY');
     expect(sections[0].find('.mat-icon')).toBeDefined();
 
@@ -70,7 +70,7 @@
     );
     dom.detectChanges();
     sections = dom.findAll('.collapsed-section');
-    expect(sections.length).toEqual(2);
+    expect(sections.length).toBe(2);
     sections[0].checkText('RECTS');
     expect(sections[0].find('.mat-icon')).toBeDefined();
     sections[1].checkText('HIERARCHY');
diff --git a/tools/winscope/src/viewers/components/hierarchy_component_test.ts b/tools/winscope/src/viewers/components/hierarchy_component_test.ts
index 1a59a54..b8974a0 100644
--- a/tools/winscope/src/viewers/components/hierarchy_component_test.ts
+++ b/tools/winscope/src/viewers/components/hierarchy_component_test.ts
@@ -127,7 +127,7 @@
     ];
     dom.detectChanges();
     const trees = dom.findAll('.tree-wrapper .tree');
-    expect(trees.length).toEqual(2);
+    expect(trees.length).toBe(2);
     trees[1].checkText('subtree');
   });
 
@@ -220,7 +220,7 @@
     component.trees[1].addWarning(warning2);
     dom.detectChanges();
     const warnings = dom.findAll('.warning');
-    expect(warnings.length).toEqual(2);
+    expect(warnings.length).toBe(2);
     warnings[0].checkTextExact('warning ' + warning1.getMessage());
     warnings[1].checkTextExact('warning ' + warning2.getMessage());
   });
diff --git a/tools/winscope/src/viewers/components/ime_additional_properties_component_test.ts b/tools/winscope/src/viewers/components/ime_additional_properties_component_test.ts
index c4c20ef..68f293d 100644
--- a/tools/winscope/src/viewers/components/ime_additional_properties_component_test.ts
+++ b/tools/winscope/src/viewers/components/ime_additional_properties_component_test.ts
@@ -91,7 +91,7 @@
     const button = dom.get('.ime-container-button');
     button.checkClassName('selected', false);
     button.click();
-    expect(component.highlightedItem).toEqual('123');
+    expect(component.highlightedItem).toBe('123');
     button.checkClassName('selected', true);
   });
 
@@ -99,7 +99,7 @@
     const button = dom.get('.input-method-surface-button');
     button.checkClassName('selected', false);
     button.click();
-    expect(component.highlightedItem).toEqual('456');
+    expect(component.highlightedItem).toBe('456');
     button.checkClassName('selected', true);
   });
 
@@ -119,7 +119,7 @@
     const button = dom.get('.ime-control-target-button');
     button.checkClassName('selected', false);
     button.click();
-    expect(component.additionalPropertieTreeName).toEqual('Ime Control Target');
+    expect(component.additionalPropertieTreeName).toBe('Ime Control Target');
     button.checkClassName('selected', true);
   });
 
diff --git a/tools/winscope/src/viewers/components/log_component_test.ts b/tools/winscope/src/viewers/components/log_component_test.ts
index 04f9be9..4fce9fa 100644
--- a/tools/winscope/src/viewers/components/log_component_test.ts
+++ b/tools/winscope/src/viewers/components/log_component_test.ts
@@ -112,7 +112,7 @@
   });
 
   it('renders filters', () => {
-    expect(dom.findAll('.entries .filter').length).toEqual(2);
+    expect(dom.findAll('.entries .filter').length).toBe(2);
   });
 
   it('renders entries', () => {
@@ -134,7 +134,7 @@
     });
     dom.findAndClick('.go-to-first-entry');
     expect(spy).toHaveBeenCalledWith(0);
-    expect(clicked?.getIndex()).toEqual(0);
+    expect(clicked?.getIndex()).toBe(0);
   });
 
   it('scrolls to current entry on button click', () => {
@@ -159,7 +159,7 @@
     });
     dom.findAndClick('.go-to-last-entry');
     expect(spy).toHaveBeenCalledWith(1);
-    expect(clicked?.getIndex()).toEqual(1);
+    expect(clicked?.getIndex()).toBe(1);
   });
 
   it('applies select filter correctly', async () => {
@@ -180,15 +180,15 @@
         return entryValue.includes(detail.value);
       });
     });
-    expect(dom.findAll('.entry').length).toEqual(2);
+    expect(dom.findAll('.entry').length).toBe(2);
     await dom.openMatSelect();
 
     const firstOption = dom.getMatSelectPanel().get('mat-option');
     firstOption.click();
-    expect(dom.findAll('.entry').length).toEqual(1);
+    expect(dom.findAll('.entry').length).toBe(1);
 
     firstOption.click();
-    expect(dom.findAll('.entry').length).toEqual(2);
+    expect(dom.findAll('.entry').length).toBe(2);
   });
 
   it('applies text filter correctly', async () => {
@@ -206,21 +206,21 @@
         return entryValue.includes(detail.filter.filterString);
       });
     });
-    expect(dom.findAll('.entry').length).toEqual(2);
+    expect(dom.findAll('.entry').length).toBe(2);
 
     const inputEl = dom.get('.headers input');
 
     inputEl.dispatchInput('123');
-    expect(dom.findAll('.entry').length).toEqual(2);
+    expect(dom.findAll('.entry').length).toBe(2);
 
     inputEl.dispatchInput('1234');
-    expect(dom.findAll('.entry').length).toEqual(1);
+    expect(dom.findAll('.entry').length).toBe(1);
 
     inputEl.dispatchInput('12345');
-    expect(dom.findAll('.entry').length).toEqual(0);
+    expect(dom.findAll('.entry').length).toBe(0);
 
     inputEl.dispatchInput('');
-    expect(dom.findAll('.entry').length).toEqual(2);
+    expect(dom.findAll('.entry').length).toBe(2);
   });
 
   it('emits event on arrow key press', () => {
@@ -234,16 +234,16 @@
     });
 
     dom.keydownArrowUp(true);
-    expect(upArrowPressedTimes).toEqual(1);
+    expect(upArrowPressedTimes).toBe(1);
 
     dom.keydownArrowDown(true);
-    expect(downArrowPressedTimes).toEqual(1);
+    expect(downArrowPressedTimes).toBe(1);
 
     dom.keydownArrowUp(true);
-    expect(upArrowPressedTimes).toEqual(2);
+    expect(upArrowPressedTimes).toBe(2);
 
     dom.keydownArrowDown(true);
-    expect(downArrowPressedTimes).toEqual(2);
+    expect(downArrowPressedTimes).toBe(2);
   });
 
   it('propagates entry on trace entry timestamp click', () => {
diff --git a/tools/winscope/src/viewers/components/rects/canvas_test.ts b/tools/winscope/src/viewers/components/rects/canvas_test.ts
index cf83dd8..b6f39e5 100644
--- a/tools/winscope/src/viewers/components/rects/canvas_test.ts
+++ b/tools/winscope/src/viewers/components/rects/canvas_test.ts
@@ -248,12 +248,12 @@
       const rect = makeUiRect3D(rectId);
       canvas.updateRects([rect]);
       const rectMesh = getRectMesh(rectId);
-      expect(rectMesh.position.z).toEqual(0);
+      expect(rectMesh.position.z).toBe(0);
 
       const newRect = makeUiRect3D(rectId);
       newRect.topLeft = new Point3D(0, 0, 1);
       canvas.updateRects([newRect]);
-      expect(rectMesh.position.z).toEqual(1);
+      expect(rectMesh.position.z).toBe(1);
       expect(getRectMesh('rect1')).toEqual(rectMesh);
     });
 
@@ -263,7 +263,7 @@
       rect.bottomRight = new Point3D(2, 2, 5);
       canvas.updateRects([rect]);
       const rectMesh = getRectMesh(rectId);
-      expect(rectMesh.position.z).toEqual(5);
+      expect(rectMesh.position.z).toBe(5);
       checkBorderColor(rectId, Canvas.RECT_EDGE_COLOR_LIGHT_MODE);
 
       isDarkMode = true;
@@ -287,7 +287,7 @@
       canvas.updateRects([visibleWithOpacity]);
       const material = rectMesh.material as THREE.MeshBasicMaterial;
       expect(material.color).not.toEqual(defaultVisibleRectColor);
-      expect(material.opacity).toEqual(1);
+      expect(material.opacity).toBe(1);
 
       const nonVisible = makeUiRect3D(rectId);
       nonVisible.colorType = ColorType.NOT_VISIBLE;
@@ -370,7 +370,7 @@
       expect(rectMesh.material).toEqual(Canvas.TRANSPARENT_MATERIAL);
 
       const fillRegionMesh = getFillRegionMesh(rectId);
-      expect(fillRegionMesh.position.z).toEqual(1);
+      expect(fillRegionMesh.position.z).toBe(1);
       checkMaterialColorAndOpacity(
         fillRegionMesh,
         Canvas.RECT_COLOR_HAS_CONTENT,
@@ -459,7 +459,7 @@
       ).toBeUndefined();
       expect(
         (rectMesh.material as THREE.MeshBasicMaterial).color.getHex(),
-      ).toEqual(13166775);
+      ).toBe(13166775);
 
       const emptyFillRegion = makeUiRect3D(rectId);
       emptyFillRegion.fillRegion = [];
@@ -468,7 +468,7 @@
       expect(rectMesh.material).toEqual(Canvas.TRANSPARENT_MATERIAL);
       expect(
         (fillRegionMesh.material as THREE.MeshBasicMaterial).color.getHex(),
-      ).toEqual(13166775);
+      ).toBe(13166775);
       let fillRegionGeometryId = fillRegionMesh.geometry.id;
 
       const emptyFillRegionWithContent = makeUiRect3D(rectId);
@@ -552,9 +552,9 @@
       const rect2 = makeUiRect3D(rectId);
       rect2.pointerLocationsInRect = [new Point3D(2, 2, 2)];
       canvas.updateRects([rect2]);
-      expect(getPointerCircle(rectId).id).toEqual(circleId);
-      expect(getPointerCrosshairs(rectId).id).toEqual(crosshairsId);
-      expect(countPointers(rectId)).toEqual(1);
+      expect(getPointerCircle(rectId).id).toBe(circleId);
+      expect(getPointerCrosshairs(rectId).id).toBe(crosshairsId);
+      expect(countPointers(rectId)).toBe(1);
 
       const rect3 = makeUiRect3D(rectId);
       rect3.pointerLocationsInRect = [
@@ -562,17 +562,17 @@
         new Point3D(1, 2, 2),
       ];
       canvas.updateRects([rect3]);
-      expect(getPointerCircle(rectId).id).not.toEqual(circleId);
-      expect(getPointerCrosshairs(rectId).id).not.toEqual(crosshairsId);
-      expect(countPointers(rectId)).toEqual(2);
+      expect(getPointerCircle(rectId).id).not.toBe(circleId);
+      expect(getPointerCrosshairs(rectId).id).not.toBe(crosshairsId);
+      expect(countPointers(rectId)).toBe(2);
 
       const rect4 = makeUiRect3D(rectId);
       rect4.pointerLocationsInRect = [new Point3D(1, 2, 2)];
       canvas.updateRects([rect4]);
       const newCircle = getPointerCircle(rectId);
-      expect(newCircle.id).not.toEqual(circleId);
-      expect(getPointerCrosshairs(rectId).id).not.toEqual(crosshairsId);
-      expect(countPointers(rectId)).toEqual(1);
+      expect(newCircle.id).not.toBe(circleId);
+      expect(getPointerCrosshairs(rectId).id).not.toBe(crosshairsId);
+      expect(countPointers(rectId)).toBe(1);
       checkVectorEqualToPoint(newCircle.position, new Point3D(1, 2, 2));
     });
 
@@ -616,21 +616,21 @@
       const rect2 = makeUiRect3D(rectId);
       rect2.rayLocationsInScene = [new Point3D(2, 3, 4)];
       canvas.updateRects([rect2]);
-      expect(getRayLine(rectId).id).toEqual(rayId);
-      expect(countObject(rayName, graphicsScene)).toEqual(1);
+      expect(getRayLine(rectId).id).toBe(rayId);
+      expect(countObject(rayName, graphicsScene)).toBe(1);
 
       const rect3 = makeUiRect3D(rectId);
       rect3.rayLocationsInScene = [new Point3D(2, 3, 4), new Point3D(4, 4, 4)];
       canvas.updateRects([rect3]);
-      expect(getRayLine(rectId).id).not.toEqual(rayId);
-      expect(countObject(rayName, graphicsScene)).toEqual(2);
+      expect(getRayLine(rectId).id).not.toBe(rayId);
+      expect(countObject(rayName, graphicsScene)).toBe(2);
 
       const rect4 = makeUiRect3D(rectId);
       rect4.rayLocationsInScene = [new Point3D(4, 4, 4)];
       canvas.updateRects([rect4]);
       const newRay = getRayLine(rectId);
-      expect(newRay.id).not.toEqual(rayId);
-      expect(countObject(rayName, graphicsScene)).toEqual(1);
+      expect(newRay.id).not.toBe(rayId);
+      expect(countObject(rayName, graphicsScene)).toBe(1);
       checkVectorEqualToPoint(newRay.position, rect4.rayLocationsInScene[0]);
     });
 
@@ -689,9 +689,9 @@
       const expectedColor = Canvas.RECT_EDGE_COLOR_LIGHT_MODE;
 
       const circle = getPointerCircle(rectId);
-      expect(
-        (circle.geometry as THREE.CircleGeometry).parameters.radius,
-      ).toEqual(10);
+      expect((circle.geometry as THREE.CircleGeometry).parameters.radius).toBe(
+        10,
+      );
       checkVectorEqualToPoint(circle.position, expCircle);
       checkMaterialColorAndOpacity(circle, expectedColor, 1);
 
@@ -851,7 +851,7 @@
       canvas.updateLabels([newLabel]);
       expect(
         (circleMesh.geometry as THREE.CircleGeometry).parameters.radius,
-      ).toEqual(2);
+      ).toBe(2);
     });
 
     it('handles change in circle center', () => {
@@ -877,7 +877,7 @@
       expect((line.material as THREE.LineBasicMaterial).color.getHex()).toEqual(
         Canvas.LABEL_LINE_COLOR,
       );
-      expect(text.element.style.color).toEqual('gray');
+      expect(text.element.style.color).toBe('gray');
 
       const highlighted = makeRectLabel(rectId);
       highlighted.isHighlighted = true;
@@ -888,7 +888,7 @@
       expect((line.material as THREE.LineBasicMaterial).color.getHex()).toEqual(
         Canvas.RECT_EDGE_COLOR_LIGHT_MODE,
       );
-      expect(text.element.style.color).toEqual('');
+      expect(text.element.style.color).toBe('');
 
       isDarkMode = true;
       canvas.updateLabels([highlighted]);
@@ -898,7 +898,7 @@
       expect((line.material as THREE.LineBasicMaterial).color.getHex()).toEqual(
         Canvas.RECT_EDGE_COLOR_DARK_MODE,
       );
-      expect(text.element.style.color).toEqual('');
+      expect(text.element.style.color).toBe('');
 
       canvas.updateLabels([label]);
       expect(
@@ -907,7 +907,7 @@
       expect((line.material as THREE.LineBasicMaterial).color.getHex()).toEqual(
         Canvas.LABEL_LINE_COLOR,
       );
-      expect(text.element.style.color).toEqual('gray');
+      expect(text.element.style.color).toBe('gray');
     });
 
     it('handles change in line points', () => {
@@ -1032,7 +1032,7 @@
       canvas.renderView();
 
       const id = canvas.getClickedRectId(0.1, 0.1);
-      expect(id).toEqual('rect1');
+      expect(id).toBe('rect1');
     });
 
     it('identifies clicked rect from fill region', () => {
@@ -1045,7 +1045,7 @@
       canvas.renderView();
 
       const id = canvas.getClickedRectId(0.1, 0.1);
-      expect(id).toEqual('rect1');
+      expect(id).toBe('rect1');
     });
 
     it('does not identify rect if not clickable', () => {
diff --git a/tools/winscope/src/viewers/components/rects/rects_component_test.ts b/tools/winscope/src/viewers/components/rects/rects_component_test.ts
index 6bffe95..34f79d2 100644
--- a/tools/winscope/src/viewers/components/rects/rects_component_test.ts
+++ b/tools/winscope/src/viewers/components/rects/rects_component_test.ts
@@ -279,8 +279,8 @@
     const rectsBefore = assertDefined(updateRectsSpy.calls.first().args[0]);
     const rectsAfter = assertDefined(updateRectsSpy.calls.mostRecent().args[0]);
 
-    expect(rectsBefore[0].topLeft.z).toEqual(200);
-    expect(rectsAfter[0].topLeft.z).toEqual(12);
+    expect(rectsBefore[0].topLeft.z).toBe(200);
+    expect(rectsAfter[0].topLeft.z).toBe(12);
   });
 
   it('updates scene on rotation slider change', () => {
@@ -335,13 +335,13 @@
     );
 
     expect(rectsGradient[0].colorType).toEqual(ColorType.VISIBLE);
-    expect(rectsGradient[0].darkFactor).toEqual(1);
+    expect(rectsGradient[0].darkFactor).toBe(1);
 
     expect(rectsWireFrame[0].colorType).toEqual(ColorType.EMPTY);
-    expect(rectsWireFrame[0].darkFactor).toEqual(1);
+    expect(rectsWireFrame[0].darkFactor).toBe(1);
 
     expect(rectsOpacity[0].colorType).toEqual(ColorType.VISIBLE_WITH_OPACITY);
-    expect(rectsOpacity[0].darkFactor).toEqual(0.5);
+    expect(rectsOpacity[0].darkFactor).toBe(0.5);
 
     updateShadingMode(ShadingMode.OPACITY, ShadingMode.GRADIENT); // cycles back to original
   });
@@ -357,7 +357,7 @@
     const newRectsComponent = assertDefined(
       newFixture.componentInstance.rectsComponent,
     );
-    expect(newRectsComponent.getZSpacingFactor()).toEqual(0.06);
+    expect(newRectsComponent.getZSpacingFactor()).toBe(0.06);
     expect(newRectsComponent.getShadingMode()).toEqual(ShadingMode.WIRE_FRAME);
   });
 
@@ -471,7 +471,7 @@
     expect(
       updateRectsSpy.calls
         .all()
-        .forEach((call) => expect(call.args[0].length).toEqual(1)),
+        .forEach((call) => expect(call.args[0].length).toBe(1)),
     );
   });
 
@@ -510,8 +510,8 @@
     expect(largeRects[0].colorType).toEqual(ColorType.EMPTY);
     expect(miniRects[0].colorType).toEqual(ColorType.VISIBLE);
 
-    expect(largeRects[0].topLeft.z).toEqual(12);
-    expect(miniRects[0].topLeft.z).toEqual(200);
+    expect(largeRects[0].topLeft.z).toBe(12);
+    expect(miniRects[0].topLeft.z).toBe(200);
   });
 
   it('redraws mini rects on change', () => {
@@ -576,8 +576,8 @@
     component.rects = [rectGroup0];
     dom.detectChanges();
     const cameraBefore = updateViewPositionSpy.calls.mostRecent().args[0];
-    expect(cameraBefore.panScreenDistance.dx).toEqual(0);
-    expect(cameraBefore.panScreenDistance.dy).toEqual(0);
+    expect(cameraBefore.panScreenDistance.dx).toBe(0);
+    expect(cameraBefore.panScreenDistance.dy).toBe(0);
     const boundingBoxBefore = updateViewPositionSpy.calls.mostRecent().args[1];
     resetSpies();
 
@@ -596,15 +596,15 @@
 
     const [cameraAfter, boundingBoxAfter] =
       updateViewPositionSpy.calls.mostRecent().args;
-    expect(cameraAfter.panScreenDistance.dx).toEqual(5);
-    expect(cameraAfter.panScreenDistance.dy).toEqual(10);
+    expect(cameraAfter.panScreenDistance.dx).toBe(5);
+    expect(cameraAfter.panScreenDistance.dy).toBe(10);
     expect(boundingBoxAfter).toEqual(boundingBoxBefore);
 
     dom.findAndClick(largeRectsCanvasSelector);
     expect(id).toBeUndefined();
 
     dom.findAndClick(largeRectsCanvasSelector);
-    expect(id).toEqual(testString);
+    expect(id).toBe(testString);
   });
 
   it('handles window resize', async () => {
@@ -776,16 +776,16 @@
   it('does not render more that selected label if over 30 rects', () => {
     component.rects = Array.from({length: 30}, () => rectGroup0);
     dom.detectChanges();
-    expect(updateLabelsSpy.calls.mostRecent().args[0].length).toEqual(30);
+    expect(updateLabelsSpy.calls.mostRecent().args[0].length).toBe(30);
 
     const newRect = makeRectWithGroupId(0, true, 'new rect');
     component.rects = component.rects.concat([newRect]);
     dom.detectChanges();
-    expect(updateLabelsSpy.calls.mostRecent().args[0].length).toEqual(0);
+    expect(updateLabelsSpy.calls.mostRecent().args[0].length).toBe(0);
 
     component.highlightedItem = newRect.id;
     dom.detectChanges();
-    expect(updateLabelsSpy.calls.mostRecent().args[0].length).toEqual(1);
+    expect(updateLabelsSpy.calls.mostRecent().args[0].length).toBe(1);
   });
 
   it('does not render more that selected label if multiple group ids', async () => {
@@ -796,7 +796,7 @@
     ];
     dom.detectChanges();
     await checkSelectedDisplay([0], [0]);
-    expect(updateLabelsSpy.calls.mostRecent().args[0].length).toEqual(1);
+    expect(updateLabelsSpy.calls.mostRecent().args[0].length).toBe(1);
 
     component.rects = component.rects.concat([rectGroup1]);
     dom.detectChanges();
@@ -804,11 +804,11 @@
     getDisplayOptions()[1].click();
     await checkSelectedDisplay([0, 1], [0, 1], true);
 
-    expect(updateLabelsSpy.calls.mostRecent().args[0].length).toEqual(0);
+    expect(updateLabelsSpy.calls.mostRecent().args[0].length).toBe(0);
 
     component.highlightedItem = rectGroup0.id;
     dom.detectChanges();
-    expect(updateLabelsSpy.calls.mostRecent().args[0].length).toEqual(1);
+    expect(updateLabelsSpy.calls.mostRecent().args[0].length).toBe(1);
   });
 
   it('handles rect type button click', async () => {
@@ -910,12 +910,12 @@
     optionsWrapper.checkClassName('force-show-all', false);
 
     let options = optionsWrapper.findAll('.shading-opt');
-    expect(options.length).toEqual(3);
+    expect(options.length).toBe(3);
     options.forEach((option, i) => checkShadingOpt(option, i, legend));
 
     updateShadingMode(ShadingMode.GRADIENT, ShadingMode.WIRE_FRAME);
     options = optionsWrapper.findAll('.shading-opt');
-    expect(options.length).toEqual(2);
+    expect(options.length).toBe(2);
     options.forEach((option, i) => checkShadingOpt(option, i + 1, legend));
 
     const wrapperEl = optionsWrapper.getHTMLElement();
@@ -983,19 +983,19 @@
     const rectsComponent = assertDefined(component.rectsComponent);
     slider.dispatchEvent(new MouseEvent('mousedown'));
     slider.dispatchEvent(new MouseEvent('mouseup'));
-    expect(rectsComponent.getZSpacingFactor()).toEqual(expectedValue);
+    expect(rectsComponent.getZSpacingFactor()).toBe(expectedValue);
     dom.keydownArrowRight();
-    expect(rectsComponent.getZSpacingFactor()).toEqual(expectedValue);
+    expect(rectsComponent.getZSpacingFactor()).toBe(expectedValue);
     dom.keydownArrowLeft();
-    expect(rectsComponent.getZSpacingFactor()).toEqual(expectedValue);
+    expect(rectsComponent.getZSpacingFactor()).toBe(expectedValue);
   }
 
   function updateSeparationSlider() {
     const rectsComponent = assertDefined(component.rectsComponent);
-    expect(rectsComponent.getZSpacingFactor()).toEqual(1);
+    expect(rectsComponent.getZSpacingFactor()).toBe(1);
     rectsComponent.onSeparationSliderChange(0.06);
     dom.detectChanges();
-    expect(rectsComponent.getZSpacingFactor()).toEqual(0.06);
+    expect(rectsComponent.getZSpacingFactor()).toBe(0.06);
   }
 
   function updateRotationSlider() {
diff --git a/tools/winscope/src/viewers/components/search_box_component_test.ts b/tools/winscope/src/viewers/components/search_box_component_test.ts
index 3af4d49..31b5f68 100644
--- a/tools/winscope/src/viewers/components/search_box_component_test.ts
+++ b/tools/winscope/src/viewers/components/search_box_component_test.ts
@@ -65,10 +65,10 @@
 
   it('handles change in filter', () => {
     const spy = spyOn(component.filterChange, 'emit');
-    expect(component.textFilter?.filterString).toEqual('');
+    expect(component.textFilter?.filterString).toBe('');
     expect(dom.find('.highlighted')).toBeUndefined();
     dom.findAndDispatchInput('.search-box', 'Test');
-    expect(component.textFilter?.filterString).toEqual('Test');
+    expect(component.textFilter?.filterString).toBe('Test');
     expect(spy).toHaveBeenCalledWith(new TextFilter('Test'));
     expect(dom.find('.highlighted')).toBeDefined();
   });
@@ -76,7 +76,7 @@
   it('handles change in flags', () => {
     const spy = spyOn(component.filterChange, 'emit');
     const buttons = dom.findAll('.search-box button');
-    expect(buttons.length).toEqual(3);
+    expect(buttons.length).toBe(3);
 
     buttons[0].click();
     expect(spy).toHaveBeenCalledWith(
diff --git a/tools/winscope/src/viewers/components/select_with_filter_component_test.ts b/tools/winscope/src/viewers/components/select_with_filter_component_test.ts
index 2c74549..bcf14c3 100644
--- a/tools/winscope/src/viewers/components/select_with_filter_component_test.ts
+++ b/tools/winscope/src/viewers/components/select_with_filter_component_test.ts
@@ -132,10 +132,10 @@
     checkSelectValue(['0']);
 
     const pinnedOptions = getPinnedOptions();
-    expect(pinnedOptions.length).toEqual(1);
+    expect(pinnedOptions.length).toBe(1);
     pinnedOptions[0].click();
     checkSelectValue([]);
-    expect(getPinnedOptions().length).toEqual(0);
+    expect(getPinnedOptions().length).toBe(0);
   });
 
   it('resets filter on close', async () => {
@@ -276,7 +276,7 @@
     options: Array<DOMTestHelper<TestHostComponent>>,
     expectedIndexes: number[],
   ) {
-    expect(options.length).toEqual(3);
+    expect(options.length).toBe(3);
     options.forEach((option, index) => {
       const exp = expectedIndexes[index];
       if (exp !== undefined) {
diff --git a/tools/winscope/src/viewers/components/user_options_component_test.ts b/tools/winscope/src/viewers/components/user_options_component_test.ts
index 4bf1aa3..9220d2b 100644
--- a/tools/winscope/src/viewers/components/user_options_component_test.ts
+++ b/tools/winscope/src/viewers/components/user_options_component_test.ts
@@ -66,7 +66,7 @@
 
   it('displays options', () => {
     const options = dom.findAll('.user-option');
-    expect(options.length).toEqual(3);
+    expect(options.length).toBe(3);
 
     options[0].checkText('option 1');
     expect(options[0].find('.user-option-chip')).toBeUndefined();
diff --git a/tools/winscope/src/viewers/viewer_input/operations/format_dispatch_entry_test.ts b/tools/winscope/src/viewers/viewer_input/operations/format_dispatch_entry_test.ts
index d45eb53..3c910c7 100644
--- a/tools/winscope/src/viewers/viewer_input/operations/format_dispatch_entry_test.ts
+++ b/tools/winscope/src/viewers/viewer_input/operations/format_dispatch_entry_test.ts
@@ -42,12 +42,12 @@
     const root = UiPropertyTreeNode.from(dispatchEntries.build());
 
     operation.apply(root);
-    expect(root.getDisplayName()).toEqual('TargetWindows');
-    expect(root.getChildByName('0')?.getDisplayName()).toEqual('one');
+    expect(root.getDisplayName()).toBe('TargetWindows');
+    expect(root.getChildByName('0')?.getDisplayName()).toBe('one');
     expect(root.getChildByName('1')?.getDisplayName()).toEqual(
       'WindowId: 0 - <Unknown Name>',
     );
-    expect(root.getChildByName('2')?.getDisplayName()).toEqual('two');
+    expect(root.getChildByName('2')?.getDisplayName()).toBe('two');
   });
 
   it('formats dispatched pointers', () => {
@@ -192,68 +192,68 @@
         .getChildByName('0')
         ?.getChildByName('dispatchedPointer')
         ?.getDisplayName(),
-    ).toEqual('DispatchedPointers');
+    ).toBe('DispatchedPointers');
     expect(
       root
         .getChildByName('0')
         ?.getChildByName('dispatchedPointer')
         ?.formattedValue(),
-    ).toEqual('<none>');
+    ).toBe('<none>');
 
     expect(
       root
         .getChildByName('1')
         ?.getChildByName('dispatchedPointer')
         ?.getDisplayName(),
-    ).toEqual('DispatchedPointers');
+    ).toBe('DispatchedPointers');
     expect(
       root
         .getChildByName('1')
         ?.getChildByName('dispatchedPointer')
         ?.getChildByName('0')
         ?.getDisplayName(),
-    ).toEqual('0 - Pointer');
+    ).toBe('0 - Pointer');
     expect(
       root
         .getChildByName('1')
         ?.getChildByName('dispatchedPointer')
         ?.getChildByName('0')
         ?.formattedValue(),
-    ).toEqual('ID: ?, XY: (2.00, 3.00), RawXY: (4.78, ?)');
+    ).toBe('ID: ?, XY: (2.00, 3.00), RawXY: (4.78, ?)');
 
     expect(
       root
         .getChildByName('2')
         ?.getChildByName('dispatchedPointer')
         ?.getDisplayName(),
-    ).toEqual('DispatchedPointers');
+    ).toBe('DispatchedPointers');
     expect(
       root
         .getChildByName('2')
         ?.getChildByName('dispatchedPointer')
         ?.getChildByName('0')
         ?.getDisplayName(),
-    ).toEqual('0 - Pointer');
+    ).toBe('0 - Pointer');
     expect(
       root
         .getChildByName('2')
         ?.getChildByName('dispatchedPointer')
         ?.getChildByName('0')
         ?.formattedValue(),
-    ).toEqual('ID: 21, XY: (4.00, ?), RawXY: (123.00, 0.02)');
+    ).toBe('ID: 21, XY: (4.00, ?), RawXY: (123.00, 0.02)');
     expect(
       root
         .getChildByName('2')
         ?.getChildByName('dispatchedPointer')
         ?.getChildByName('2')
         ?.getDisplayName(),
-    ).toEqual('1 - Pointer');
+    ).toBe('1 - Pointer');
     expect(
       root
         .getChildByName('2')
         ?.getChildByName('dispatchedPointer')
         ?.getChildByName('2')
         ?.formattedValue(),
-    ).toEqual('ID: ?, XY: (5.00, 6.00), RawXY: (?, ?)');
+    ).toBe('ID: ?, XY: (5.00, 6.00), RawXY: (?, ?)');
   });
 });
diff --git a/tools/winscope/src/viewers/viewer_input/presenter_test.ts b/tools/winscope/src/viewers/viewer_input/presenter_test.ts
index 3a8aca2..98e89a8 100644
--- a/tools/winscope/src/viewers/viewer_input/presenter_test.ts
+++ b/tools/winscope/src/viewers/viewer_input/presenter_test.ts
@@ -234,8 +234,8 @@
   }
 
   override executePropertiesChecksAfterPositionUpdate(uiData: UiData): void {
-    expect(uiData.entries.length).toEqual(8);
-    expect(uiData.currentIndex).toEqual(0);
+    expect(uiData.entries.length).toBe(8);
+    expect(uiData.currentIndex).toBe(0);
     expect(uiData.selectedIndex).toBeUndefined();
     const curEntry = uiData.entries[0];
     const expectedFields: LogField[] = [
@@ -294,17 +294,15 @@
     });
 
     const motionEvent = assertDefined(uiData.propertiesTree);
-    expect(motionEvent.getChildByName('eventId')?.getValue()).toEqual(
-      330184796,
-    );
-    expect(motionEvent.getChildByName('action')?.formattedValue()).toEqual(
+    expect(motionEvent.getChildByName('eventId')?.getValue()).toBe(330184796);
+    expect(motionEvent.getChildByName('action')?.formattedValue()).toBe(
       'ACTION_DOWN',
     );
 
     const dispatchProperties = assertDefined(uiData.dispatchPropertiesTree);
-    expect(dispatchProperties.getAllChildren().length).toEqual(5);
+    expect(dispatchProperties.getAllChildren().length).toBe(5);
 
-    expect(dispatchProperties.getChildByName('0')?.getDisplayName()).toEqual(
+    expect(dispatchProperties.getChildByName('0')?.getDisplayName()).toBe(
       'win-212',
     );
   }
@@ -315,10 +313,8 @@
     action: string,
   ) {
     const properties = assertDefined(uiData.propertiesTree);
-    expect(properties.getChildByName('action')?.formattedValue()).toEqual(
-      action,
-    );
-    expect(properties.getChildByName('eventId')?.getValue()).toEqual(eventId);
+    expect(properties.getChildByName('action')?.formattedValue()).toBe(action);
+    expect(properties.getChildByName('eventId')?.getValue()).toBe(eventId);
   }
 
   override executeSpecializedTests() {
@@ -499,13 +495,13 @@
         const motionDispatchProperties = assertDefined(
           uiData.dispatchPropertiesTree,
         );
-        expect(motionDispatchProperties.getAllChildren().length).toEqual(1);
+        expect(motionDispatchProperties.getAllChildren().length).toBe(1);
         expect(
           motionDispatchProperties
             .getChildByName('0')
             ?.getChildByName('windowId')
             ?.getValue(),
-        ).toEqual(98n);
+        ).toBe(98n);
       });
 
       it('finds entry by time', async () => {
@@ -678,23 +674,23 @@
         });
         const dispatchEvents = properties.getChildByName('dispatchEvents');
         const spyArgs = spy.calls.allArgs();
-        expect(spyArgs.length).toEqual(1);
+        expect(spyArgs.length).toBe(1);
         expect(spyArgs[0][2]).toEqual(dispatchEvents);
         expect(uiData.rectsToDraw).toHaveSize(1);
-        expect(uiData.rectsToDraw?.at(0)?.id).toEqual('1 inputRect');
+        expect(uiData.rectsToDraw?.at(0)?.id).toBe('1 inputRect');
 
         await presenter.onAppEvent(
           TracePositionUpdate.fromTraceEntry(trace.getEntry(2)),
         );
         expect(uiData.rectsToDraw).toHaveSize(1);
-        expect(uiData.rectsToDraw?.at(0)?.id).toEqual('1 inputRect');
+        expect(uiData.rectsToDraw?.at(0)?.id).toBe('1 inputRect');
 
         await presenter.onAppEvent(
           TracePositionUpdate.fromTraceEntry(trace.getEntry(3)),
         );
         expect(uiData.rectsToDraw).toHaveSize(3);
         uiData.rectsToDraw?.forEach((rect) =>
-          expect(rect.id).toEqual('1 inputRect'),
+          expect(rect.id).toBe('1 inputRect'),
         );
       });
 
@@ -707,11 +703,11 @@
         await presenter.onLogEntryClick(3);
         expect(
           assertDefined(uiData.dispatchPropertiesTree).getAllChildren().length,
-        ).toEqual(5);
+        ).toBe(5);
         await presenter.onDispatchPropertiesFilterChange(new TextFilter('212'));
         expect(
           assertDefined(uiData.dispatchPropertiesTree).getAllChildren().length,
-        ).toEqual(1);
+        ).toBe(1);
       });
 
       it('updates highlighted property', async () => {
@@ -719,12 +715,12 @@
           (uiDataLog) => (uiData = uiDataLog as UiData),
           false,
         );
-        expect(uiData.highlightedProperty).toEqual('');
+        expect(uiData.highlightedProperty).toBe('');
         const id = '4';
         presenter.onHighlightedPropertyChange(id);
-        expect(uiData.highlightedProperty).toEqual(id);
+        expect(uiData.highlightedProperty).toBe(id);
         presenter.onHighlightedPropertyChange(id);
-        expect(uiData.highlightedProperty).toEqual('');
+        expect(uiData.highlightedProperty).toBe('');
       });
 
       it('highlights the proper selected node', async () => {
@@ -743,7 +739,7 @@
           }),
         );
         await presenter.onLogEntryClick(testLogId);
-        expect(uiData.highlightedProperty).toEqual('2');
+        expect(uiData.highlightedProperty).toBe('2');
       });
 
       it('updates highlighted property on target window click', async () => {
@@ -790,7 +786,7 @@
         await presenter.onHighlightedIdChange(rect.id);
         expect(uiData.highlightedRect).toEqual(rect.id);
         await presenter.onHighlightedIdChange(rect.id);
-        expect(uiData.highlightedRect).toEqual('');
+        expect(uiData.highlightedRect).toBe('');
       });
 
       it('filters rects by having content or visibility', async () => {
diff --git a/tools/winscope/src/viewers/viewer_input_method_clients/operations/update_display_names_test.ts b/tools/winscope/src/viewers/viewer_input_method_clients/operations/update_display_names_test.ts
index 0248090..5f192f7 100644
--- a/tools/winscope/src/viewers/viewer_input_method_clients/operations/update_display_names_test.ts
+++ b/tools/winscope/src/viewers/viewer_input_method_clients/operations/update_display_names_test.ts
@@ -45,7 +45,7 @@
     );
 
     operation.apply(hierarchyRoot);
-    expect(hierarchyRoot.getDisplayName()).toEqual('view 7654321');
+    expect(hierarchyRoot.getDisplayName()).toBe('view 7654321');
   });
 
   it('changes display name of client node without view', () => {
@@ -54,7 +54,7 @@
     );
 
     operation.apply(hierarchyRoot);
-    expect(hierarchyRoot.getDisplayName()).toEqual('null');
+    expect(hierarchyRoot.getDisplayName()).toBe('null');
   });
 
   it('does not change name of non-client node', () => {
@@ -76,6 +76,6 @@
     );
 
     operation.apply(hierarchyRoot);
-    expect(hierarchyRoot.getDisplayName()).toEqual('service');
+    expect(hierarchyRoot.getDisplayName()).toBe('service');
   });
 });
diff --git a/tools/winscope/src/viewers/viewer_media_based/viewer_media_based_component_test.ts b/tools/winscope/src/viewers/viewer_media_based/viewer_media_based_component_test.ts
index 2d11952..60ac699 100644
--- a/tools/winscope/src/viewers/viewer_media_based/viewer_media_based_component_test.ts
+++ b/tools/winscope/src/viewers/viewer_media_based/viewer_media_based_component_test.ts
@@ -80,13 +80,13 @@
   it('can be minimized and maximized', () => {
     const buttonMinimize = dom.get('.button-minimize');
     const videoContainer = dom.get('.video-container').getHTMLElement();
-    expect(videoContainer.style.height).toEqual('');
+    expect(videoContainer.style.height).toBe('');
 
     buttonMinimize.click();
-    expect(videoContainer.style.height).toEqual('0px');
+    expect(videoContainer.style.height).toBe('0px');
 
     buttonMinimize.click();
-    expect(videoContainer.style.height).toEqual('');
+    expect(videoContainer.style.height).toBe('');
   });
 
   it('forces minimized state', () => {
@@ -95,12 +95,12 @@
 
     const buttonMinimize = dom.get('.button-minimize');
     const videoContainer = dom.get('.video-container').getHTMLElement();
-    expect(videoContainer.style.height).toEqual('0px');
+    expect(videoContainer.style.height).toBe('0px');
     buttonMinimize.checkDisabled(true);
 
     component.forceMinimize = false;
     dom.detectChanges();
-    expect(videoContainer.style.height).toEqual('');
+    expect(videoContainer.style.height).toBe('');
     buttonMinimize.checkDisabled(false);
   });
 
@@ -176,7 +176,7 @@
 
     expect(
       dom.get('video').getHTMLElement<HTMLVideoElement>().currentTime,
-    ).toEqual(10);
+    ).toBe(10);
 
     dom.openMatSelect();
     const options = dom.getMatSelectPanel().findAll('mat-option');
@@ -184,7 +184,7 @@
     options[1].click();
     expect(
       dom.get('video').getHTMLElement<HTMLVideoElement>().currentTime,
-    ).toEqual(15);
+    ).toBe(15);
   });
 
   it('does not update frame if trace entries do not change', () => {
@@ -238,7 +238,7 @@
     dom.detectChanges();
     expect(dom.find('.info-icon')).toBeDefined();
     container.doubleClick();
-    expect(index).toEqual(0);
+    expect(index).toBe(0);
   });
 
   function getContainerMaxWidth(): number {
diff --git a/tools/winscope/src/viewers/viewer_search/active_search_component_test.ts b/tools/winscope/src/viewers/viewer_search/active_search_component_test.ts
index 1452bf3..918bfe2 100644
--- a/tools/winscope/src/viewers/viewer_search/active_search_component_test.ts
+++ b/tools/winscope/src/viewers/viewer_search/active_search_component_test.ts
@@ -183,10 +183,10 @@
     );
     expect(
       currentSearch.querySelector('.test-query')?.textContent?.trim(),
-    ).toEqual('test query');
+    ).toBe('test query');
     expect(
       currentSearch.querySelector('.test-control-value')?.textContent?.trim(),
-    ).toEqual('test name');
+    ).toBe('test name');
   });
 
   function getTextInput(): DOMTestHelper<ActiveSearchComponent> {
diff --git a/tools/winscope/src/viewers/viewer_search/presenter_test.ts b/tools/winscope/src/viewers/viewer_search/presenter_test.ts
index 48abb1e..f3a54fa 100644
--- a/tools/winscope/src/viewers/viewer_search/presenter_test.ts
+++ b/tools/winscope/src/viewers/viewer_search/presenter_test.ts
@@ -179,10 +179,10 @@
     await presenter.onAppEvent(
       TracePositionUpdate.fromTraceEntry(trace.getEntry(0)),
     );
-    expect(uiData.currentSearches.length).toEqual(1);
-    expect(uiData.currentSearches[0].result?.currentIndex).toEqual(0);
-    expect(uiData.currentSearches[0].result?.headers.length).toEqual(4);
-    expect(uiData.currentSearches[0].result?.entries.length).toEqual(1);
+    expect(uiData.currentSearches.length).toBe(1);
+    expect(uiData.currentSearches[0].result?.currentIndex).toBe(0);
+    expect(uiData.currentSearches[0].result?.headers.length).toBe(4);
+    expect(uiData.currentSearches[0].result?.entries.length).toBe(1);
     expect(spyTimestamp).toHaveBeenCalledTimes(2);
     expect(spyTimestamp).toHaveBeenCalledWith(200n);
     expect(spyTimestamp).toHaveBeenCalledWith(123n);
@@ -247,11 +247,11 @@
     expect(emitEventSpy).toHaveBeenCalledWith(
       new TraceSearchRequest(testQuery),
     );
-    expect(uiData.currentSearches.length).toEqual(1);
+    expect(uiData.currentSearches.length).toBe(1);
     emitEventSpy.calls.reset();
 
     await presenter.onAppEvent(new TraceSearchFailed());
-    expect(uiData.currentSearches.length).toEqual(1);
+    expect(uiData.currentSearches.length).toBe(1);
     expect(uiData.recentSearches).toEqual([new ListedSearch(testQuery)]);
     emitEventSpy.calls.reset();
 
@@ -262,12 +262,12 @@
 
     // check removed presenter cannot still affect ui data
     element.dispatchEvent(new CustomEvent(ViewerEvents.ArrowDownPress));
-    expect(uiData.currentSearches.length).toEqual(1);
+    expect(uiData.currentSearches.length).toBe(1);
 
     await presenter.onSearchQueryClick(newQuery, 1);
     expect(emitEventSpy).toHaveBeenCalledWith(new TraceRemoveRequest(newTrace));
     expect(emitEventSpy).toHaveBeenCalledWith(new TraceSearchRequest(newQuery));
-    expect(uiData.currentSearches.length).toEqual(1);
+    expect(uiData.currentSearches.length).toBe(1);
     expect(uiData.recentSearches).toEqual([
       new ListedSearch(newQuery),
       new ListedSearch(testQuery),
@@ -308,9 +308,9 @@
     await runSearchWithNoRowsAndCheckUiData(testQuery, trace);
 
     await presenter.onClearQueryClick(0);
-    expect(uiData.currentSearches.length).toEqual(1);
+    expect(uiData.currentSearches.length).toBe(1);
     await presenter.onClearQueryClick(1);
-    expect(uiData.currentSearches.length).toEqual(0);
+    expect(uiData.currentSearches.length).toBe(0);
   });
 
   it('retains at most 10 recent searches', async () => {
@@ -320,8 +320,8 @@
       await presenter.onSearchQueryClick(testQuery, 1);
       await presenter.onAppEvent(new TraceAddRequest(trace));
     }
-    expect(uiData.currentSearches.length).toEqual(1);
-    expect(uiData.recentSearches.length).toEqual(10);
+    expect(uiData.currentSearches.length).toBe(1);
+    expect(uiData.recentSearches.length).toBe(10);
   });
 
   function searchEqualityTester(
diff --git a/tools/winscope/src/viewers/viewer_search/search_list_component_test.ts b/tools/winscope/src/viewers/viewer_search/search_list_component_test.ts
index 96e4713..10e5aa6 100644
--- a/tools/winscope/src/viewers/viewer_search/search_list_component_test.ts
+++ b/tools/winscope/src/viewers/viewer_search/search_list_component_test.ts
@@ -68,7 +68,7 @@
     dom.detectChanges();
 
     const listedSearches = dom.findAll('.listed-search');
-    expect(listedSearches.length).toEqual(2);
+    expect(listedSearches.length).toBe(2);
 
     const queryName1 = listedSearches[0].get('.listed-search-name');
     const queryName2 = listedSearches[1].get('.listed-search-name');
diff --git a/tools/winscope/src/viewers/viewer_search/search_result_presenter_test.ts b/tools/winscope/src/viewers/viewer_search/search_result_presenter_test.ts
index 7fba6cb..ab22943 100644
--- a/tools/winscope/src/viewers/viewer_search/search_result_presenter_test.ts
+++ b/tools/winscope/src/viewers/viewer_search/search_result_presenter_test.ts
@@ -155,7 +155,7 @@
           trace,
           TracePositionUpdate.fromTraceEntry(trace.getEntry(0)),
         );
-        expect(result.entries[0].fields[0].value).toEqual(0);
+        expect(result.entries[0].fields[0].value).toBe(0);
       });
 
       describe('value conversions', () => {
@@ -178,7 +178,7 @@
             .and.returnValue('test_time_ns');
           this.spyIter?.get.withArgs('value').and.returnValue('123');
           await presenter.onAppEvent(assertDefined(this.getPositionUpdate()));
-          expect(result.entries[0].fields[2].value).toEqual('test_time_ns');
+          expect(result.entries[0].fields[2].value).toBe('test_time_ns');
           expect(result.entries[0].fields[3].value).toEqual(
             TimestampConverterUtils.makeRealTimestamp(123n),
           );
@@ -187,19 +187,19 @@
         it("converts value to 'NULL' if null", async () => {
           this.spyIter?.get.withArgs('value').and.returnValue(null);
           await presenter.onAppEvent(assertDefined(this.getPositionUpdate()));
-          expect(result.entries[0].fields[3].value).toEqual('NULL');
+          expect(result.entries[0].fields[3].value).toBe('NULL');
         });
 
         it('converts value to number if bigint', async () => {
           this.spyIter?.get.withArgs('value').and.returnValue(321n);
           await presenter.onAppEvent(assertDefined(this.getPositionUpdate()));
-          expect(result.entries[0].fields[3].value).toEqual(321);
+          expect(result.entries[0].fields[3].value).toBe(321);
         });
 
         it("converts value to '[]' if Uint8Array", async () => {
           this.spyIter?.get.withArgs('value').and.returnValue(new Uint8Array());
           await presenter.onAppEvent(assertDefined(this.getPositionUpdate()));
-          expect(result.entries[0].fields[3].value).toEqual('[]');
+          expect(result.entries[0].fields[3].value).toBe('[]');
         });
       });
     });
diff --git a/tools/winscope/src/viewers/viewer_search/viewer_search_component_test.ts b/tools/winscope/src/viewers/viewer_search/viewer_search_component_test.ts
index bb4823a..0e369c2 100644
--- a/tools/winscope/src/viewers/viewer_search/viewer_search_component_test.ts
+++ b/tools/winscope/src/viewers/viewer_search/viewer_search_component_test.ts
@@ -212,7 +212,7 @@
     updateInputDataAndDetectChanges(newData);
 
     const activeSections = dom.findAll('active-search');
-    expect(activeSections.length).toEqual(2);
+    expect(activeSections.length).toBe(2);
     expect(activeSections[0].find('.clear-button')).toBeDefined();
     expect(activeSections[1].find('.clear-button')).toBeDefined();
 
@@ -235,13 +235,13 @@
     addCurrentSearchWithResult(testQuery, 2);
     let resultTabs = dom.findAll('.result-tabs .mdc-tab__text-label');
     let activeSections = dom.findAll('active-search');
-    expect(activeSections.length).toEqual(2);
-    expect(resultTabs.length).toEqual(2);
+    expect(activeSections.length).toBe(2);
+    expect(resultTabs.length).toBe(2);
     resultTabs[0].checkTextExact('Query 1');
     resultTabs[1].checkTextExact('Query 2');
 
     dom.findAndClick('.clear-button');
-    expect(uid).toEqual(1);
+    expect(uid).toBe(1);
 
     const spy = spyOn(activeSections[1].getHTMLElement(), 'scrollIntoView');
 
@@ -252,9 +252,9 @@
 
     resultTabs = dom.findAll('.result-tabs .mdc-tab__text-label');
     activeSections = dom.findAll('active-search');
-    expect(resultTabs.length).toEqual(1);
+    expect(resultTabs.length).toBe(1);
     resultTabs[0].checkTextExact('Query 2');
-    expect(activeSections.length).toEqual(1);
+    expect(activeSections.length).toBe(1);
     expect(spy).toHaveBeenCalled();
   });
 
@@ -344,7 +344,7 @@
 
   it('can open SQL view descriptors in how to section', () => {
     const accordionItems = dom.findAll('.how-to-search .accordion-item');
-    expect(accordionItems.length).toEqual(6);
+    expect(accordionItems.length).toBe(6);
     accordionItems.forEach((item) => checkAccordionItemCollapsed(item));
 
     accordionItems[0].get(accordionItemSelector).click();
@@ -362,7 +362,7 @@
 
   it('can open documentation for each SQL view', async () => {
     const links = dom.findAll('.how-to-search .accordion-item-header a');
-    expect(links.length).toEqual(6);
+    expect(links.length).toBe(6);
     for (const [i, link] of links.entries()) {
       await checkDocsLink(link, i);
     }
@@ -409,7 +409,7 @@
     expect(query).toEqual(testQuery);
     await changeTab(0);
     runSearchAndCheckHandled(addCurrentSearchWithResult);
-    expect(dom.findAll('active-search').length).toEqual(2);
+    expect(dom.findAll('active-search').length).toBe(2);
   }
 
   function runSearchAndCheckHandled(runSearch: () => void) {
@@ -450,9 +450,9 @@
     data.currentSearches.push(new CurrentSearch(2, testQuery));
     updateInputDataAndDetectChanges(data);
     await dom.detectChangesAndWaitStable();
-    expect(
-      component.searchComponent?.matTabGroups?.first.selectedIndex,
-    ).toEqual(0);
+    expect(component.searchComponent?.matTabGroups?.first.selectedIndex).toBe(
+      0,
+    );
     getTextInput(0).checkValue('');
     getTextInput(1).checkValue(testQuery);
   }
@@ -462,9 +462,9 @@
     const input = getTextInput();
     expect(input.checkValue(''));
     await changeTabAndClickEdit(tabIndex);
-    expect(
-      component.searchComponent?.matTabGroups?.first.selectedIndex,
-    ).toEqual(0);
+    expect(component.searchComponent?.matTabGroups?.first.selectedIndex).toBe(
+      0,
+    );
     expect(input.checkValue(testQuery));
   }
 
diff --git a/tools/winscope/src/viewers/viewer_surface_flinger/presenter_test.ts b/tools/winscope/src/viewers/viewer_surface_flinger/presenter_test.ts
index 44eb2b0..eb4ef00 100644
--- a/tools/winscope/src/viewers/viewer_surface_flinger/presenter_test.ts
+++ b/tools/winscope/src/viewers/viewer_surface_flinger/presenter_test.ts
@@ -276,12 +276,12 @@
   override executePropertiesChecksAfterPositionUpdate(uiData: UiDataHierarchy) {
     expect(
       uiData.propertiesTree?.getChildByName('screenBounds')?.formattedValue(),
-    ).toEqual('(0, 0) - (1080, 600)');
+    ).toBe('(0, 0) - (1080, 600)');
     expect(
       assertDefined(
         uiData.propertiesTree?.getChildByName('damageRegion'),
       ).formattedValue(),
-    ).toEqual('SkRegion((0, 0, 1080, 600))');
+    ).toBe('SkRegion((0, 0, 1080, 600))');
     expect(uiData.displays?.at(0)).toEqual({
       displayId: '4619827259835644672',
       groupId: 0,
@@ -391,7 +391,7 @@
 
       it('handles displays with no visible layers', async () => {
         await presenter?.onAppEvent(assertDefined(this.positionUpdate));
-        expect(uiData?.displays?.length).toEqual(5);
+        expect(uiData?.displays?.length).toBe(5);
         // we want the displays to be sorted by name
         expect(uiData?.displays).toEqual([
           {
@@ -467,7 +467,7 @@
         await createPresenterWithViewCapture(assertDefined(this.traceSf));
         expect(
           uiData.rectsToDraw.filter((rect) => rect.hasContent).length,
-        ).toEqual(1);
+        ).toBe(1);
       });
 
       it('handles rect double click if view capture trace present', async () => {
@@ -537,7 +537,7 @@
         await presenter.onHighlightedNodeChange(nodeWithRelZChild);
         const secondRelZChildName =
           'Background for SurfaceView[com.android.car.carlauncher/com.android.car.carlauncher.CarLauncher]#628';
-        expect(uiData.curatedProperties?.relativeParent).toEqual('none');
+        expect(uiData.curatedProperties?.relativeParent).toBe('none');
         expect(uiData.curatedProperties?.relativeChildren).toEqual([
           {
             layerId: '626',
@@ -677,38 +677,38 @@
             layerValues: [{layerId: '3', nodeId: '3 layer3', name: 'layer3'}],
           },
         ]);
-        expect(properties.calcColor).toEqual('(0, 0, 0), alpha: 1');
-        expect(properties.reqColor).toEqual('no color found');
-        expect(properties.calcShadowRadius).toEqual('1 px');
-        expect(properties.calcCornerRadii).toEqual('(1, 2, 0, 4)');
-        expect(properties.destinationFrame).toEqual('(0, 0) - (1, 1)');
+        expect(properties.calcColor).toBe('(0, 0, 0), alpha: 1');
+        expect(properties.reqColor).toBe('no color found');
+        expect(properties.calcShadowRadius).toBe('1 px');
+        expect(properties.calcCornerRadii).toBe('(1, 2, 0, 4)');
+        expect(properties.destinationFrame).toBe('(0, 0) - (1, 1)');
         expect(properties.calcCrop).toEqual(EMPTY_OBJ_STRING);
-        expect(properties.reqCrop).toEqual('(0, 0) - (1, 2)');
-        expect(properties.reqCornerRadii).toEqual('(5, 5, 5, 5)');
+        expect(properties.reqCrop).toBe('(0, 0) - (1, 2)');
+        expect(properties.reqCornerRadii).toBe('(5, 5, 5, 5)');
 
         await presenter.onHighlightedIdChange(
           assertDefined(tree.getChildByName('layer0')).id,
         );
         properties = assertDefined(uiData.curatedProperties);
-        expect(properties.calcCornerRadii).toEqual('(0, 0, 0, 0)');
-        expect(properties.reqCornerRadii).toEqual('(0, 0, 0, 0)');
+        expect(properties.calcCornerRadii).toBe('(0, 0, 0, 0)');
+        expect(properties.reqCornerRadii).toBe('(0, 0, 0, 0)');
 
         await presenter.onHighlightedIdChange(
           assertDefined(tree.getChildByName('layer2')).id,
         );
         properties = assertDefined(uiData.curatedProperties);
-        expect(properties.calcCornerRadii).toEqual('(6, 6, 6, 6)');
-        expect(properties.reqCornerRadii).toEqual('(0, 0, 3, 0)');
+        expect(properties.calcCornerRadii).toBe('(6, 6, 6, 6)');
+        expect(properties.reqCornerRadii).toBe('(0, 0, 3, 0)');
       });
 
       it('draws input windows', async () => {
         await presenter.onAppEvent(this.getPositionUpdate());
-        expect(uiData.rectsToDraw.length).toEqual(27);
+        expect(uiData.rectsToDraw.length).toBe(27);
         expect(uiData.rectsToDraw[6].label).toEqual(
           'Bounds for - com.android.car.carlauncher/com.android.car.carlauncher.CarLauncher#577',
         );
         presenter.onRectTypeButtonClicked(TraceRectType.INPUT_WINDOWS);
-        expect(uiData.rectsToDraw.length).toEqual(15);
+        expect(uiData.rectsToDraw.length).toBe(15);
         expect(uiData.rectsToDraw[6].label).toEqual(
           'com.google.android.apps.maps/com.google.android.maps.LimitedMapsActivity#630',
         );
@@ -732,7 +732,7 @@
           uiData.propertiesTree
             ?.getChildByName('requestedTransform')
             ?.formattedValue(),
-        ).toEqual('IDENTITY');
+        ).toBe('IDENTITY');
       }
 
       async function createPresenterWithViewCapture(
diff --git a/tools/winscope/src/viewers/viewer_transactions/presenter_test.ts b/tools/winscope/src/viewers/viewer_transactions/presenter_test.ts
index 6db4726..6bf7234 100644
--- a/tools/winscope/src/viewers/viewer_transactions/presenter_test.ts
+++ b/tools/winscope/src/viewers/viewer_transactions/presenter_test.ts
@@ -192,7 +192,7 @@
         await presenter.onLogEntryClick(10);
         expect(
           assertDefined(uiData.propertiesTree).getAllChildren().length,
-        ).toEqual(10);
+        ).toBe(10);
         expect(
           uiData.propertiesTree?.getChildByName('transformToDisplayInverse'),
         ).toBeDefined();
diff --git a/tools/winscope/src/viewers/viewer_transitions/operations/update_transition_participants_test.ts b/tools/winscope/src/viewers/viewer_transitions/operations/update_transition_participants_test.ts
index 6a29f94..5363d4a 100644
--- a/tools/winscope/src/viewers/viewer_transitions/operations/update_transition_participants_test.ts
+++ b/tools/winscope/src/viewers/viewer_transitions/operations/update_transition_participants_test.ts
@@ -48,14 +48,14 @@
         ?.getEagerPropertyByName('layers')
         ?.getChildByName('0')
         ?.formattedValue(),
-    ).toEqual('2 (testLayer)');
+    ).toBe('2 (testLayer)');
 
     expect(
       transition
         ?.getEagerPropertyByName('windows')
         ?.getChildByName('0')
         ?.formattedValue(),
-    ).toEqual('0x97b5518 (testTitle)');
+    ).toBe('0x97b5518 (testTitle)');
   });
 
   it('updates only windowId display name if neither layer id nor token in maps', () => {
@@ -74,13 +74,13 @@
         ?.getEagerPropertyByName('layers')
         ?.getChildByName('0')
         ?.formattedValue(),
-    ).toEqual('1');
+    ).toBe('1');
 
     expect(
       transition
         ?.getEagerPropertyByName('windows')
         ?.getChildByName('0')
         ?.formattedValue(),
-    ).toEqual('0xb887160');
+    ).toBe('0xb887160');
   });
 });
diff --git a/tools/winscope/src/viewers/viewer_transitions/presenter_test.ts b/tools/winscope/src/viewers/viewer_transitions/presenter_test.ts
index 8fd5508..379ddb3 100644
--- a/tools/winscope/src/viewers/viewer_transitions/presenter_test.ts
+++ b/tools/winscope/src/viewers/viewer_transitions/presenter_test.ts
@@ -171,18 +171,18 @@
   }
 
   override executePropertiesChecksAfterPositionUpdate(uiData: UiDataLog) {
-    expect(uiData.entries.length).toEqual(4);
+    expect(uiData.entries.length).toBe(4);
 
     const selectedTransition = assertDefined(uiData.propertiesTree);
-    expect(selectedTransition.getChildByName('id')?.formattedValue()).toEqual(
+    expect(selectedTransition.getChildByName('id')?.formattedValue()).toBe(
       '32',
     );
-    expect(selectedTransition.getChildByName('type')?.formattedValue()).toEqual(
+    expect(selectedTransition.getChildByName('type')?.formattedValue()).toBe(
       'OPEN',
     );
     expect(
       selectedTransition.getChildByName('createTimeNs')?.formattedValue(),
-    ).toEqual('2023-11-21, 13:30:25.429');
+    ).toBe('2023-11-21, 13:30:25.429');
 
     const dispatchTimeEntryTs = uiData.entries[0].fields[3];
     expect(dispatchTimeEntryTs?.propagateEntryTimestamp).toBeTrue();
diff --git a/tools/winscope/src/viewers/viewer_view_capture/operations/simplify_names_test.ts b/tools/winscope/src/viewers/viewer_view_capture/operations/simplify_names_test.ts
index a97f3e4..8f8756e 100644
--- a/tools/winscope/src/viewers/viewer_view_capture/operations/simplify_names_test.ts
+++ b/tools/winscope/src/viewers/viewer_view_capture/operations/simplify_names_test.ts
@@ -41,7 +41,7 @@
 
     operation.apply(hierarchyRoot);
     hierarchyRoot.forEachNodeDfs((node) =>
-      expect(node.getDisplayName()).toEqual('name@123456789'),
+      expect(node.getDisplayName()).toBe('name@123456789'),
     );
   });
 });
diff --git a/tools/winscope/src/viewers/viewer_view_capture/presenter_test.ts b/tools/winscope/src/viewers/viewer_view_capture/presenter_test.ts
index 26da1c5..4197fb6 100644
--- a/tools/winscope/src/viewers/viewer_view_capture/presenter_test.ts
+++ b/tools/winscope/src/viewers/viewer_view_capture/presenter_test.ts
@@ -201,7 +201,7 @@
       assertDefined(
         propertiesTree.getChildByName('translationY'),
       ).formattedValue(),
-    ).toEqual('786.506');
+    ).toBe('786.506');
     expect(propertiesTree.getChildByName('translationX')).toBeUndefined();
     expect(uiData.displays).toEqual([
       {displayId: 0, groupId: 0, name: 'PhoneWindow@4f9be60', isActive: true},
@@ -209,8 +209,8 @@
     const curatedProperties = assertDefined(
       (uiData as UiData).curatedProperties,
     );
-    expect(curatedProperties.translationY).toEqual('786.506');
-    expect(curatedProperties.translationX).toEqual('0');
+    expect(curatedProperties.translationY).toBe('786.506');
+    expect(curatedProperties.translationX).toBe('0');
   }
 
   override executePropertiesChecksAfterSecondPositionUpdate(
@@ -221,10 +221,10 @@
       assertDefined(
         propertiesTree.getChildByName('translationY'),
       ).formattedValue(),
-    ).toEqual('785.500');
+    ).toBe('785.500');
     expect(
       assertDefined((uiData as UiData).curatedProperties).translationY,
-    ).toEqual('785.500');
+    ).toBe('785.500');
   }
 
   override executeSpecializedChecksForPropertiesFromRect(
@@ -233,10 +233,10 @@
     const curatedProperties = assertDefined(
       (uiData as UiData).curatedProperties,
     );
-    expect(curatedProperties.translationX).toEqual('-9.800');
-    expect(curatedProperties.translationY).toEqual('210.700');
-    expect(curatedProperties.alpha).toEqual('0');
-    expect(curatedProperties.willNotDraw).toEqual('true');
+    expect(curatedProperties.translationX).toBe('-9.800');
+    expect(curatedProperties.translationY).toBe('210.700');
+    expect(curatedProperties.alpha).toBe('0');
+    expect(curatedProperties.willNotDraw).toBe('true');
   }
 
   override executeSpecializedTests() {
diff --git a/tools/winscope/src/viewers/viewer_window_manager/presenter_test.ts b/tools/winscope/src/viewers/viewer_window_manager/presenter_test.ts
index 4d3089a..d2ecda1 100644
--- a/tools/winscope/src/viewers/viewer_window_manager/presenter_test.ts
+++ b/tools/winscope/src/viewers/viewer_window_manager/presenter_test.ts
@@ -200,12 +200,12 @@
     const propertiesTree = assertDefined(uiData.propertiesTree);
     expect(
       assertDefined(propertiesTree.getChildByName('state')).formattedValue(),
-    ).toEqual('STOPPED');
+    ).toBe('STOPPED');
     expect(
       assertDefined(
         propertiesTree.findDfs((node) => node.name === 'hashCode'),
       ).formattedValue(),
-    ).toEqual('0xf7092ed');
+    ).toBe('0xf7092ed');
     expect(uiData.displays).toEqual([
       {
         displayId: 'DisplayContent 1f3454e Built-in Screen',
@@ -218,14 +218,14 @@
 
   override executeSpecializedChecksForPropertiesFromRect(uiData: UiData) {
     const propertiesTree = assertDefined(uiData.propertiesTree);
-    expect(propertiesTree.getAllChildren().length).toEqual(10);
+    expect(propertiesTree.getAllChildren().length).toBe(10);
   }
 
   override executePropertiesChecksAfterSecondPositionUpdate(uiData: UiData) {
     const propertiesTree = assertDefined(uiData.propertiesTree);
     expect(
       assertDefined(propertiesTree.getChildByName('state')).formattedValue(),
-    ).toEqual('RESUMED');
+    ).toBe('RESUMED');
   }
 
   override executeSpecializedTests(): void {
@@ -264,7 +264,7 @@
 
       it('does not propagate hashcode if name does not match', async () => {
         await presenter.onPropagatePropertyClick(invalidNode);
-        expect(uiData.highlightedItem).toEqual('');
+        expect(uiData.highlightedItem).toBe('');
       });
 
       it('does not propagate hashcode if matching node not found', async () => {
@@ -272,7 +272,7 @@
           makeUiPropertyNode('', 'hashCode', 0),
         );
         await presenter.onPropagatePropertyClick(missingHashcode);
-        expect(uiData.highlightedItem).toEqual('');
+        expect(uiData.highlightedItem).toBe('');
       });
 
       it('propagates node with matching hashcode', async () => {