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() Bakre Hjullager till Ford Cortina Mk1 / Corsair / Lotus – matonostalgi.se

Bakre Hjullager till Ford Cortina Mk1 / Corsair / Lotus

890 kr

2 i lager
Artikel Nr 1711112 , 211E7065A1 , 361498
Lagerplats Finns i Viksjö

Beskrivning

Kullager 30,9×65,4×79,3mm

Ford 1711112 , 211E7065A1 , 361498

Bakre Hjullager till Ford Cortina Mk1 / Corsair / Lotus

Originalreservdel (New Old Stock) – Extremt svårfunnet i detta skick!

Säljer ett fabriksnytt originalhjullager för bakaxeln till klassiska brittiska Ford-modeller från 60-talet. Detta är en NOS-artikel, vilket innebär att det är en tidstypisk originaldel som aldrig varit monterad. Perfekt för dig som renoverar till utställningsskick och vill ha exakt rätt passform och hållbarhet.

Ford Cortina Mk1 (Alla modeller inkl. GT) 1962 – 1966 Bakaxel (Höger/Vänster)

Ford Lotus Cortina (Mk1) 1963 – 1966 Bakaxel (Höger/Vänster)

Ford Corsair (V4 & GT) 1963 – 1970 Bakaxel (Höger/Vänster)

Ford Consul Cortina 1962 – 1964 Bakaxel (Höger/Vänster)

TEKNISKA DATA & MÅTT

Detta lager är en specialenhet med fast hylsa, konstruerat för att klara de specifika påfrestningarna på Fords stela bakaxlar under 60-talet.

Typ: Enradigt hjullager för bakaxel (Specialenhet)

Innerdiameter (d): 30,9 mm

Ytterdiameter (D): 65,4 mm

Total bredd/längd (B): 79,3 mm (Inklusive krage/hylsa)

Skick: NOS (New Old Stock) – Originalförpackning kan förekomma.

CROSS-REFERENS (Ersättningsnummer)

Lagret motsvarar följande original- och eftermarknadsnummer:

Ford OEM: 1711112

Ford OEM: 211E-7065-A1

SKF: 361498 (Gammalt nummer)

Quinton Hazell: QWB113

RHP: 6502-30.9

FAG: 530862

Specification

Vikt 1 kg
Lagerplats Finns i Viksjö
Skick

Nytt

Vi använder cookies, web beacons och liknande tekniker (gemensamt kallade ”cookies”) för att förbättra din upplevelse hos oss.