diff --git a/core/src/components/segment-view/test/disabled/segment-view.e2e.ts b/core/src/components/segment-view/test/disabled/segment-view.e2e.ts
new file mode 100644
index 0000000000..421c5cd316
--- /dev/null
+++ b/core/src/components/segment-view/test/disabled/segment-view.e2e.ts
@@ -0,0 +1,99 @@
+import { expect } from '@playwright/test';
+import { configs, test } from '@utils/test/playwright';
+
+/**
+ * This behavior does not vary across directions
+ */
+configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
+ test.describe(title('segment-view: disabled'), () => {
+ test('should not have visual regressions', async ({ page }) => {
+ await page.setContent(
+ `
+
+
+
+ Paid
+ Free
+ Top
+
+ `,
+ config
+ );
+
+ const segment = page.locator('ion-segment-view');
+
+ await expect(segment).toHaveScreenshot(screenshot(`segment-view-disabled`));
+ });
+ });
+});
+
+/**
+ * This behavior does not vary across modes/directions
+ */
+configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
+ test.describe(title('segment-view: disabled'), () => {
+ test('should show the second content when first segment content is disabled', async ({ page }) => {
+ await page.setContent(
+ `
+
+
+ Paid
+
+
+ Free
+
+
+ Top
+
+
+
+ Paid
+ Free
+ Top
+
+ `,
+ config
+ );
+
+ const segmentContent = page.locator('ion-segment-content[id="free"]');
+ await expect(segmentContent).toBeInViewport();
+ });
+
+ test.only('should scroll to the third content and update the segment value when the second segment content is disabled', async ({ page }) => {
+ await page.setContent(
+ `
+
+
+ Paid
+
+
+ Free
+
+
+ Top
+
+
+
+ Paid
+ Free
+ Top
+
+ `,
+ config
+ );
+
+ const segmentContent = page.locator('ion-segment-content[id="top"]');
+ await segmentContent.scrollIntoViewIfNeeded();
+ await expect(segmentContent).toBeInViewport();
+
+ const segment = page.locator('ion-segment');
+ expect(await segment.evaluate((el: HTMLIonSegmentElement) => el.value)).toBe('top');
+ });
+ });
+});