1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-12-23 16:38:45 +01:00

[PM-5189] Fixing jest tests

This commit is contained in:
Cesar Gonzalez 2024-06-17 12:23:01 -05:00
parent 1e035696e8
commit c7708b958b
No known key found for this signature in database
GPG Key ID: 3381A5457F8CCECF
2 changed files with 37 additions and 0 deletions

View File

@ -1346,6 +1346,31 @@ describe("OverlayBackground", () => {
}); });
}); });
describe("rebuildSubFrameOffsets", () => {
it("triggers a rebuild of the sub frame offsets of the sender", async () => {
const buildSubFrameOffsetsSpy = jest.spyOn(
overlayBackground as any,
"buildSubFrameOffsets",
);
const tab = mock<chrome.tabs.Tab>({ id: 1 });
const frameId = 10;
subFrameOffsetsSpy[tab.id] = new Map([
[frameId, { left: 1, top: 1, url: "https://top-frame.com" }],
]);
const sender = mock<chrome.runtime.MessageSender>({ tab, frameId });
sendMockExtensionMessage({ command: "rebuildSubFrameOffsets" }, sender);
await flushPromises();
expect(buildSubFrameOffsetsSpy).toHaveBeenCalledWith(
sender.tab,
frameId,
sender.url,
sender,
);
});
});
describe("destroyAutofillInlineMenuListeners", () => { describe("destroyAutofillInlineMenuListeners", () => {
it("sends a message to the passed frameId that triggers a destruction of the inline menu listeners on that frame", () => { it("sends a message to the passed frameId that triggers a destruction of the inline menu listeners on that frame", () => {
const sender = mock<chrome.runtime.MessageSender>({ tab: { id: 1 }, frameId: 0 }); const sender = mock<chrome.runtime.MessageSender>({ tab: { id: 1 }, frameId: 0 });

View File

@ -428,6 +428,12 @@ export class OverlayBackground implements OverlayBackgroundInterface {
await this.rebuildSubFrameOffsets(sender); await this.rebuildSubFrameOffsets(sender);
} }
/**
* Triggers a delayed repositioning of the inline menu. Used in cases where the page in some way
* is resized, scrolled, or when a sub frame is interacted with.
*
* @param sender - The sender of the message
*/
private delayedUpdateInlineMenuPosition(sender: chrome.runtime.MessageSender) { private delayedUpdateInlineMenuPosition(sender: chrome.runtime.MessageSender) {
this.clearDelayedUpdateInlineMenuPositionTimeout(); this.clearDelayedUpdateInlineMenuPositionTimeout();
this.delayedUpdateInlineMenuPositionTimeout = globalThis.setTimeout(async () => { this.delayedUpdateInlineMenuPositionTimeout = globalThis.setTimeout(async () => {
@ -593,6 +599,9 @@ export class OverlayBackground implements OverlayBackgroundInterface {
} }
} }
/**
* Clears the timeout used to trigger a delayed update of the inline menu position.
*/
private clearDelayedUpdateInlineMenuPositionTimeout() { private clearDelayedUpdateInlineMenuPositionTimeout() {
if (this.delayedUpdateInlineMenuPositionTimeout) { if (this.delayedUpdateInlineMenuPositionTimeout) {
clearTimeout(this.delayedUpdateInlineMenuPositionTimeout); clearTimeout(this.delayedUpdateInlineMenuPositionTimeout);
@ -695,6 +704,9 @@ export class OverlayBackground implements OverlayBackgroundInterface {
}, 150); }, 150);
} }
/**
* Clears the timeout used to fade in the inline menu elements.
*/
private clearInlineMenuFadeInTimeout() { private clearInlineMenuFadeInTimeout() {
if (this.inlineMenuFadeInTimeout) { if (this.inlineMenuFadeInTimeout) {
globalThis.clearTimeout(this.inlineMenuFadeInTimeout); globalThis.clearTimeout(this.inlineMenuFadeInTimeout);