Beskrivning
REP.SATS HJULCYLINDER
FORD MUSTANG MERCURY FALCON 1966-72,
RAYBESTOS WK483
Ersätter art: EISC1005
OE-nummer: C5DZ2128B, D2DZ2128B, 5463148
Ford:Falcon (1966-1970),Maverick(1970-1972),Mustang(1966-1970) Merc:Comet(1965,1971-1972)
|
from pathlib import Path import unittest PLUGIN_ROOT = Path(__file__).resolve().parents[1] PHP = (PLUGIN_ROOT / "matnostalgi-hotrod-loader.php").read_text(encoding="utf-8") JS = (PLUGIN_ROOT / "assets" / "hotrod-loader.js").read_text(encoding="utf-8") CSS = (PLUGIN_ROOT / "assets" / "hotrod-loader.css").read_text(encoding="utf-8") class HotrodCatalogBridgeTests(unittest.TestCase): def test_version_is_bumped(self): self.assertIn("Version: 1.3.1", PHP) self.assertIn("private const VERSION = '1.3.1'", PHP) def test_drag_tree_and_burnout_markup_are_rendered(self): self.assertIn('mn-hotrod-loader__tree', PHP) self.assertIn('mn-hotrod-loader__tree-light--amber-c', PHP) self.assertIn('mn-hotrod-loader__tree-light--green', PHP) self.assertIn('mn-hotrod-loader__burnout-mark', PHP) def test_countdown_phase_and_wheelie_logic_exist(self): self.assertIn('const RANDOM_GREEN_MIN_DELAY = 160', JS) self.assertIn('const RANDOM_GREEN_MAX_DELAY = 680', JS) self.assertIn('const COUNTDOWN_GO_MS = 140', JS) self.assertIn('function beginCountdown', JS) self.assertIn('setPhase("countdown")', JS) self.assertIn('state.phase === "countdown"', JS) self.assertIn('state.greenLightDelay = RANDOM_GREEN_MIN_DELAY + Math.random() * (RANDOM_GREEN_MAX_DELAY - RANDOM_GREEN_MIN_DELAY);', JS) self.assertIn('if (phaseElapsed < state.greenLightDelay) setTreeState("staged")', JS) self.assertIn('else if (phaseElapsed < state.greenLightDelay + COUNTDOWN_GO_MS) setTreeState("green")', JS) self.assertIn('setCarAttitude(-18 * launchProgress, -18 * launchProgress)', JS) self.assertIn('state.mode !== "pending-load"', JS) def test_css_contains_tree_burnout_and_wheelie_support(self): self.assertIn('--mn-loader-burnout-mark-width', CSS) self.assertIn('--mn-loader-car-tilt', CSS) self.assertIn('.mn-hotrod-loader__tree', CSS) self.assertIn('.mn-hotrod-loader__burnout-mark', CSS) self.assertIn('@keyframes mn-hotrod-wheel-spin', CSS) self.assertIn('@keyframes mn-hotrod-tree-go', CSS) self.assertIn('rotate(calc(var(--mn-loader-car-tilt)', CSS) def test_navigation_waits_for_catalog_warmup_with_a_hard_cap(self): self.assertIn("window.MatNostalgiCatalogNavigation", JS) self.assertIn("catalogNavigation?.canWarm?.(url.href)", JS) self.assertIn("warmupPromise = catalogNavigation.warm(url.href)", JS) self.assertIn("NAVIGATION_DELAY = 520", JS) self.assertIn("CATALOG_WARMUP_MAX_WAIT = 3000", JS) self.assertIn("function waitForWarmupOrTimeout", JS) navigation_block = JS[JS.index("function installNavigationTriggers"):JS.index("function catalogEventRequestId")] self.assertLess(navigation_block.index("catalogNavigation.warm(url.href)"), navigation_block.index("writePendingNavigation(url.href)")) self.assertIn("const minimumDelayPromise = new Promise", navigation_block) self.assertIn("const warmupGatePromise = waitForWarmupOrTimeout", navigation_block) self.assertIn("Promise.all([minimumDelayPromise, warmupGatePromise]).then(navigate)", navigation_block) self.assertIn("clearTimeout(state.navigationCancelTimer)", navigation_block) self.assertNotIn("Promise.resolve(catalogNavigation.warm(url.href)).catch(() => {})", navigation_block) def test_catalog_dom_heuristics_are_removed(self): self.assertNotIn("function isCatalogBusy", JS) self.assertNotIn("installCatalogTriggers", JS) self.assertNotIn(".woocommerce.mn-catalog-refreshing", JS) def test_loader_uses_catalog_events_and_tracks_overlap(self): self.assertIn('window.addEventListener("mn:catalog-load-start"', JS) self.assertIn('window.addEventListener("mn:catalog-load-complete"', JS) self.assertIn('window.addEventListener("mn:catalog-load-error"', JS) self.assertIn("catalogRequestIds: new Set()", JS) self.assertIn("state.catalogRequestIds.size > 0", JS) def test_catalog_refresh_restarts_loader_during_exit_or_fade(self): start = JS.index("function handleCatalogLoadStart") end = JS.index("function handleCatalogLoadSettled", start) handler = JS[start:end] self.assertIn('!["exiting", "trail-fading", "idle"].includes(state.phase)', handler) self.assertIn("if (!canJoinCurrentRun)", handler) self.assertIn("startCatalogRefresh()", handler) self.assertLess(handler.index("startCatalogRefresh()"), handler.index("state.catalogRequestIds.add(requestId)")) refresh_start = JS.index("function startCatalogRefresh") refresh_end = JS.index("function tick", refresh_start) refresh = JS[refresh_start:refresh_end] self.assertIn('!["exiting", "trail-fading", "idle"].includes(state.phase)', refresh) self.assertIn('startEntering("catalog-refresh")', refresh) def test_pagehide_keeps_loader_visible_until_document_is_replaced(self): pagehide_start = JS.index('window.addEventListener("pagehide"') pagehide_end = JS.index('window.addEventListener("pageshow"', pagehide_start) pagehide_block = JS[pagehide_start:pagehide_end] self.assertIn("clearTimeout(state.navigationCancelTimer)", pagehide_block) self.assertNotIn("hideLoader", pagehide_block) self.assertIn("if (event.persisted)", JS[pagehide_end:]) self.assertIn("hideLoader(true)", JS[pagehide_end:]) def test_exit_animation_cannot_teleport_after_catalog_layout_stall(self): self.assertIn("const MAX_VISUAL_FRAME_STEP = 50", JS) self.assertIn("state.exitElapsed += visualFrameElapsed", JS) self.assertIn("state.exitElapsed / state.exitDuration", JS) self.assertNotIn("phaseElapsed / state.exitDuration", JS) self.assertIn("state.trailFadeElapsed += visualFrameElapsed", JS) self.assertIn("state.trailFadeElapsed >= TRAIL_FADE_DURATION", JS) if __name__ == "__main__": unittest.main()
REP.SATS HJULCYLINDER
FORD MUSTANG MERCURY FALCON 1966-72,
RAYBESTOS WK483
Ersätter art: EISC1005
OE-nummer: C5DZ2128B, D2DZ2128B, 5463148
Ford:Falcon (1966-1970),Maverick(1970-1972),Mustang(1966-1970) Merc:Comet(1965,1971-1972)
|
| Vikt | 0,5 kg |
|---|---|
| Märke | Raybestos |
| Lagerplats | VIKSJÖ REPSATS HJULCYL 2 |
Här ser du vilka fordon produkten är registrerad att passa till. Öppna ett bilmärke för att se modeller, år och noter.
Valet sparas på den här enheten och används när sökfilter är aktiverat.
Tips: du kan även skriva historiska modell- eller trimnamn, exempelvis 62 Cutlass, 1959 Oldsmobile eller 59 Impala i den vanliga sökrutan högst upp på sidan.
Vi använder cookies, web beacons och liknande tekniker (gemensamt kallade ”cookies”) för att förbättra din upplevelse hos oss.