Merge dev → main: surveys, P/OEM page, trial upsell, catalog-issue report, pcat timings #127
@@ -348,6 +348,7 @@ export const CATALOG_MAP: Record<string, CatalogEntry> = {
|
||||
// Opel
|
||||
W0L: { code: "GM_OP201809", brand: "Opel" },
|
||||
W0V: { code: "GM_OP201809", brand: "Opel" }, // newer Stellantis-era WMI
|
||||
VXK: { code: "GM_OP201809", brand: "Opel" }, // PSA/Stellantis-platform Opel (Corsa F, Mokka B)
|
||||
// Chevrolet
|
||||
KL1: { code: "GM_C201809", brand: "Chevrolet" },
|
||||
// SsangYong
|
||||
|
||||
@@ -565,6 +565,7 @@ export const PL24_WMI_SERVICE_MAP: Record<string, string> = {
|
||||
// Opel / Vauxhall
|
||||
W0L: "opel_parts", // Opel AG (Germany)
|
||||
W0V: "opel_parts", // Opel (newer Stellantis-era WMI)
|
||||
VXK: "opel_parts", // PSA/Stellantis-platform Opel (Corsa F, Mokka B — France/Spain plants)
|
||||
|
||||
// Citroën (PSA)
|
||||
VF7: "citroen_parts", // Citroën SA (France)
|
||||
|
||||
@@ -16,7 +16,8 @@ describe("vinResolveCacheKeys (Q4)", () => {
|
||||
it("keeps the in-flight lock key version-independent (cross-deploy dedupe)", () => {
|
||||
const { lockKey } = vinResolveCacheKeys(VIN);
|
||||
expect(lockKey).toBe(`vin:lock:${VIN}`);
|
||||
expect(lockKey).not.toContain(DECODE_CHAIN_VERSION);
|
||||
// The VIN itself may contain the version digit — check the segment, not the char.
|
||||
expect(lockKey).not.toContain(`:${DECODE_CHAIN_VERSION}:`);
|
||||
});
|
||||
|
||||
it("bumping the version changes the namespace (old entries become unreachable)", () => {
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
* Both the decode path (VehiclesService) and the admin cache-buster
|
||||
* (InternalVehiclesService) MUST build keys through here so they stay in sync.
|
||||
*/
|
||||
export const DECODE_CHAIN_VERSION = "2";
|
||||
export const DECODE_CHAIN_VERSION = "3";
|
||||
|
||||
export function vinResolveCacheKeys(vin: string): {
|
||||
cacheKey: string;
|
||||
|
||||
@@ -926,6 +926,7 @@ describe("getBrandFromWmi — RCA Q5 additions", () => {
|
||||
["LSV", "Volkswagen"],
|
||||
["LVV", "Chery"],
|
||||
["ZCF", "Iveco"],
|
||||
["VXK", "Opel"], // PSA/Stellantis-platform Opel (Corsa F 2023 customer case, 2026-06-10)
|
||||
];
|
||||
it.each(ADDED)("maps %s -> %s", (wmi, brand) => {
|
||||
expect(getBrandFromWmi(wmi)).toBe(brand);
|
||||
|
||||
@@ -118,6 +118,7 @@ export const WMI_BRAND_MAP: Record<string, string> = {
|
||||
// Opel
|
||||
W0L: "Opel",
|
||||
W0V: "Opel", // newer Stellantis-era WMI
|
||||
VXK: "Opel", // PSA/Stellantis-platform Opel (Corsa F, Mokka B — France/Spain plants)
|
||||
// Skoda
|
||||
TMB: "Skoda",
|
||||
// Seat
|
||||
|
||||
Reference in New Issue
Block a user