release: publish Twitch VOD Manager 1.0.4
Add smooth VOD bulk-action dock entrance and exit motion, including on Windows systems with reduced animations enabled. Refresh Windows shortcut icons through persistent versioned resources, preserve pinned shortcut compatibility across upgrades, and clean the icon cache on full uninstall. Update the public documentation and release metadata for version 1.0.4.
This commit is contained in:
@@ -1353,6 +1353,7 @@ async function run() {
|
||||
});
|
||||
const hoverCard = win.locator('.vod-card[data-vod-id="hover-hd-fixture"]');
|
||||
const gridTopBeforeSelection = await win.locator('#vodGrid').evaluate((grid) => grid.getBoundingClientRect().top);
|
||||
await win.emulateMedia({ reducedMotion: 'reduce' });
|
||||
await hoverCard.locator('.vod-thumbnail').click();
|
||||
const clickSelection = await win.evaluate(() => {
|
||||
const card = document.querySelector('.vod-card[data-vod-id="hover-hd-fixture"]');
|
||||
@@ -1401,8 +1402,41 @@ async function run() {
|
||||
check(Math.abs(dockWithOneSelection.width - dockWithTwoSelections.width) <= 0.25, `VOD bulk dock width changes between one and two selections: ${dockWithOneSelection.width}/${dockWithTwoSelections.width}`);
|
||||
check(Math.abs(dockWithOneSelection.left - dockWithTwoSelections.left) <= 0.25, `VOD bulk dock shifts between one and two selections: ${dockWithOneSelection.left}/${dockWithTwoSelections.left}`);
|
||||
await secondDockCard.locator('.vod-thumbnail').click();
|
||||
await hoverCard.locator('.vod-thumbnail').click();
|
||||
await win.waitForTimeout(80);
|
||||
const dockDuringExit = await win.locator('#vodBulkBar').evaluate((dock) => {
|
||||
const style = getComputedStyle(dock);
|
||||
return {
|
||||
display: style.display,
|
||||
opacity: Number(style.opacity),
|
||||
visibility: style.visibility,
|
||||
pointerEvents: style.pointerEvents,
|
||||
animationCount: dock.getAnimations().length,
|
||||
translateY: new DOMMatrix(style.transform).m42
|
||||
};
|
||||
});
|
||||
await win.waitForFunction(() => getComputedStyle(document.getElementById('vodBulkBar')).visibility === 'hidden', null, { timeout: 1000 });
|
||||
const dockAfterExit = await win.locator('#vodBulkBar').evaluate((dock) => {
|
||||
const style = getComputedStyle(dock);
|
||||
return {
|
||||
display: style.display,
|
||||
opacity: Number(style.opacity),
|
||||
visibility: style.visibility,
|
||||
pointerEvents: style.pointerEvents
|
||||
};
|
||||
});
|
||||
checks.vodBulkDockExit = { during: dockDuringExit, after: dockAfterExit };
|
||||
check(dockDuringExit.display === 'flex' && dockDuringExit.visibility === 'visible', `VOD bulk dock disappears before its exit motion: ${JSON.stringify(dockDuringExit)}`);
|
||||
check(dockDuringExit.opacity > 0 && dockDuringExit.opacity < 1, `VOD bulk dock has no visible exit opacity frame: ${JSON.stringify(dockDuringExit)}`);
|
||||
check(dockDuringExit.animationCount > 0, `VOD bulk dock exits without a running transition: ${JSON.stringify(dockDuringExit)}`);
|
||||
check(dockDuringExit.translateY > 1, `VOD bulk dock exit has no downward movement: ${JSON.stringify(dockDuringExit)}`);
|
||||
check(dockAfterExit.display === 'flex' && dockAfterExit.visibility === 'hidden' && dockAfterExit.pointerEvents === 'none' && dockAfterExit.opacity === 0, `VOD bulk dock does not finish in a non-interactive hidden state: ${JSON.stringify(dockAfterExit)}`);
|
||||
await hoverCard.locator('.vod-thumbnail').click();
|
||||
await win.waitForTimeout(280);
|
||||
check(openCallsAfterClick.length === 0, `VOD image click still opens Twitch: ${JSON.stringify(openCallsAfterClick)}`);
|
||||
check(openCallsAfterContextMenu.length === 1 && openCallsAfterContextMenu[0] === 'https://example.invalid/hover-hd-fixture', `VOD context menu does not exclusively open Twitch: ${JSON.stringify(openCallsAfterContextMenu)}`);
|
||||
await win.locator('#toolbarRefreshVodsBtn').hover();
|
||||
await win.waitForTimeout(40);
|
||||
await hoverCard.hover();
|
||||
await win.waitForTimeout(320);
|
||||
const hdHoverFirst = await win.evaluate(() => {
|
||||
|
||||
Reference in New Issue
Block a user