fix(overlays): skip local-positioning tests for firefox, added a todo to fix later

* fix(overlays): skip local-positioning tests for Firefox, and added a todo to fix later

* Update packages/ui/components/overlays/test/local-positioning.test.js

Co-authored-by: Thijs Louisse <thijs.louisse@ing.com>

* feat(core): add Firefox to browserDetection

---------

Co-authored-by: Thijs Louisse <thijs.louisse@ing.com>
This commit is contained in:
gerjanvangeest 2024-03-06 16:17:09 +01:00 committed by Thijs Louisse
parent a847f99388
commit 61db0eda9f
4 changed files with 24 additions and 4 deletions

View file

@ -0,0 +1,5 @@
---
'@lion/ui': patch
---
[overlays] skip local-positioning tests for Firefox, and added a todo to fix later

View file

@ -0,0 +1,5 @@
---
'@lion/ui': minor
---
[core] add Firefox to browserDetection

View file

@ -35,6 +35,7 @@ export const browserDetection = {
isChrome: checkChrome(), isChrome: checkChrome(),
isIOSChrome: checkChrome('ios'), isIOSChrome: checkChrome('ios'),
isChromium: checkChrome('chromium'), isChromium: checkChrome('chromium'),
isFirefox: navigator.userAgent.toLowerCase().indexOf('firefox') > -1,
isMac: navigator.appVersion.indexOf('Mac') !== -1, isMac: navigator.appVersion.indexOf('Mac') !== -1,
isIOS: /iPhone|iPad|iPod/i.test(navigator.userAgent), isIOS: /iPhone|iPad|iPod/i.test(navigator.userAgent),
isMacSafari: isMacSafari:

View file

@ -2,6 +2,7 @@
import { expect, fixture, fixtureSync } from '@open-wc/testing'; import { expect, fixture, fixtureSync } from '@open-wc/testing';
import { html } from 'lit/static-html.js'; import { html } from 'lit/static-html.js';
import { OverlayController } from '@lion/ui/overlays.js'; import { OverlayController } from '@lion/ui/overlays.js';
import { browserDetection } from '@lion/ui/core.js';
import { normalizeTransformStyle } from '../test-helpers/normalizeTransformStyle.js'; import { normalizeTransformStyle } from '../test-helpers/normalizeTransformStyle.js';
/** /**
@ -65,8 +66,7 @@ describe('Local Positioning', () => {
expect(ctrl._popper.state.modifiersData).to.exist; expect(ctrl._popper.state.modifiersData).to.exist;
}); });
// TODO: To be fixed in 4096926 it('positions correctly', async () => {
it.skip('positions correctly', async () => {
// smoke test for integration of popper // smoke test for integration of popper
const ctrl = new OverlayController({ const ctrl = new OverlayController({
...withLocalTestConfig(), ...withLocalTestConfig(),
@ -86,6 +86,11 @@ describe('Local Positioning', () => {
`); `);
await ctrl.show(); await ctrl.show();
// TODO: test fails on Firefox, but looks fine in browser => try again in a later version and investigate when persists (or move to anchor positioning when available in all browsers)
if (browserDetection.isFirefox) {
return;
}
expect(normalizeTransformStyle(ctrl.contentWrapperNode.style.transform)).to.equal( expect(normalizeTransformStyle(ctrl.contentWrapperNode.style.transform)).to.equal(
'translate(70px, -508px)', 'translate(70px, -508px)',
); );
@ -207,8 +212,7 @@ describe('Local Positioning', () => {
expect(ctrl._popper.state.modifiersData.offset.auto).to.eql({ x: 0, y: 16 }); expect(ctrl._popper.state.modifiersData.offset.auto).to.eql({ x: 0, y: 16 });
}); });
// TODO: To be fixed in 4096926 it('positions the Popper element correctly on show', async () => {
it.skip('positions the Popper element correctly on show', async () => {
const ctrl = new OverlayController({ const ctrl = new OverlayController({
...withLocalTestConfig(), ...withLocalTestConfig(),
contentNode: createContentSync({ width: 80, height: 20 }), contentNode: createContentSync({ width: 80, height: 20 }),
@ -225,6 +229,11 @@ describe('Local Positioning', () => {
await ctrl.show(); await ctrl.show();
// TODO: test fails on Firefox, but looks fine in browser => try again in a later version and investigate when persists (or move to anchor positioning when available in all browsers)
if (browserDetection.isFirefox) {
return;
}
// N.B. margin between invoker and content = 8px // N.B. margin between invoker and content = 8px
expect(normalizeTransformStyle(ctrl.contentWrapperNode.style.transform)).to.equal( expect(normalizeTransformStyle(ctrl.contentWrapperNode.style.transform)).to.equal(
'translate(110px, -308px)', 'translate(110px, -308px)',