diff --git a/core/src/components/popover/animations/ios.enter.ts b/core/src/components/popover/animations/ios.enter.ts
index f30364b7a4d..7af32a978e8 100644
--- a/core/src/components/popover/animations/ios.enter.ts
+++ b/core/src/components/popover/animations/ios.enter.ts
@@ -30,7 +30,7 @@ export const iosEnterAnimation = (baseEl: HTMLElement, opts?: any): Animation =>
originY: 'top'
}
- const results = getPopoverPosition(isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, trigger, ev);
+ const results = getPopoverPosition(isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, size, trigger, ev);
const padding = size === 'cover' ? 0 : POPOVER_IOS_BODY_PADDING;
const margin = size === 'cover' ? 0 : 25;
diff --git a/core/src/components/popover/animations/md.enter.ts b/core/src/components/popover/animations/md.enter.ts
index 04c503676a8..2555be804d7 100644
--- a/core/src/components/popover/animations/md.enter.ts
+++ b/core/src/components/popover/animations/md.enter.ts
@@ -29,7 +29,7 @@ export const mdEnterAnimation = (baseEl: HTMLElement, opts?: any): Animation =>
originY: 'top'
}
- const results = getPopoverPosition(isRTL, contentWidth, contentHeight, 0, 0, reference, side, align, defaultPosition, trigger, ev);
+ const results = getPopoverPosition(isRTL, contentWidth, contentHeight, 0, 0, reference, side, align, defaultPosition, size, trigger, ev);
const padding = size === 'cover' ? 0 : POPOVER_MD_BODY_PADDING;
diff --git a/core/src/components/popover/test/arrow/e2e.ts b/core/src/components/popover/test/arrow/e2e.ts
index 3d5c7fdbad4..959963872ad 100644
--- a/core/src/components/popover/test/arrow/e2e.ts
+++ b/core/src/components/popover/test/arrow/e2e.ts
@@ -1,44 +1,37 @@
import { newE2EPage } from '@stencil/core/testing';
-test('popover - arrow side: top', async () => {
- await testPopover('top', false);
-});
-
-test('popover - arrow side: right', async () => {
- await testPopover('right', false);
-});
-
-test('popover - arrow side: bottom', async () => {
- await testPopover('bottom', false);
-});
-
-test('popover - arrow side: left', async () => {
- await testPopover('left', false);
-});
-
-test('popover - arrow side: start', async () => {
- await testPopover('start'), false;
-});
-
-test('popover - arrow side: end', async () => {
- await testPopover('end', false);
-});
-
-test('popover - arrow side: start, rtl', async () => {
- await testPopover('start', false, true);
-});
-
-test('popover - arrow side: end, rtl', async () => {
- await testPopover('end', false, true);
-});
-
+const popoverNames = [
+ 'top-auto',
+ 'right-auto',
+ 'bottom-auto',
+ 'left-auto',
+ 'start-auto',
+ 'end-auto',
+ 'bottom-auto-center',
+ 'bottom-auto-end',
+ 'top-cover',
+ 'right-cover',
+ 'bottom-cover',
+ 'left-cover',
+ 'start-cover',
+ 'end-cover',
+ 'bottom-cover-center',
+ 'bottom-cover-end'
+];
+
+for (const popoverName of popoverNames) {
+ test(`popover - arrow - ${popoverName}`, async () => {
+ await testPopover(popoverName, false);
+ await testPopover(popoverName, true);
+ });
+}
-const testPopover = async (side, isRTL = false) => {
+const testPopover = async (popoverName, isRTL = false) => {
const rtl = isRTL ? '&rtl=true' : '';
const page = await newE2EPage({ url: `/src/components/popover/test/arrow?ionic:_testing=true${rtl}` });
- const POPOVER_CLASS = `${side}-popover`;
- const TRIGGER_ID = `${side}-trigger`;
+ const POPOVER_CLASS = `${popoverName}-popover`;
+ const TRIGGER_ID = `${popoverName}-trigger`;
const screenshotCompares = [];
const trigger = await page.find(`#${TRIGGER_ID}`);
diff --git a/core/src/components/popover/test/arrow/index.html b/core/src/components/popover/test/arrow/index.html
index 1b5fa134378..dd92276a51e 100644
--- a/core/src/components/popover/test/arrow/index.html
+++ b/core/src/components/popover/test/arrow/index.html
@@ -11,13 +11,18 @@