Add metadata checks for Tuya and Gledopto (#867)

This commit is contained in:
Koen Kanters
2025-09-11 21:02:02 +02:00
committed by GitHub
parent baac87f000
commit 5ab4317878
5 changed files with 48 additions and 3 deletions

View File

@@ -11,6 +11,8 @@ import {it} from "vitest";
import * as common from "../src/common";
import type {ExtraMetas, RepoImageMeta} from "../src/types";
export const IMAGE_GLEDOPTO = "GL-B-008P_V17A1_OTAV7.ota";
export const IMAGE_TUYA = "1662693814-oem_mg21_zg_nh_win_cover_relay_OTA_1.0.7.bin";
export const IMAGE_V14_1 = "ZLinky_router_v14.ota";
export const IMAGE_V14_2 = "ZLinky_router_v14_limited.ota";
export const IMAGE_V13_1 = "ZLinky_router_v13.ota";

View File

@@ -10,7 +10,9 @@ import type {RepoImageMeta} from "../src/types";
import {
BASE_IMAGES_TEST_DIR_PATH,
getAdjustedContent,
IMAGE_GLEDOPTO,
IMAGE_INVALID,
IMAGE_TUYA,
IMAGE_V12_1,
IMAGE_V12_1_METAS,
IMAGE_V13_1,
@@ -626,4 +628,28 @@ Text after end tag`);
]);
expect(writeManifestSpy).toHaveBeenCalledWith(common.PREV_INDEX_MANIFEST_FILENAME, [IMAGE_V12_1_METAS]);
});
it.each([
['"manufacturerName": ["_TZ3000"]', IMAGE_TUYA, undefined],
["", IMAGE_TUYA, "Tuya image requires extra `manufacturerName` metadata"],
['"modelId": "GL-C-008"', IMAGE_GLEDOPTO, undefined],
["", IMAGE_GLEDOPTO, "Gledopto image requires extra `modelId` metadata"],
])("manufacturer specific checks", async (body: string, image: string, error: string | undefined) => {
filePaths = [useImage(image)];
const newContext = withBody(`\`\`\`json
{
${body}
}
\`\`\``);
if (error === undefined) {
// @ts-expect-error mock
await checkOtaPR(github, core, newContext);
} else {
await expect(async () => {
// @ts-expect-error mock
await checkOtaPR(github, core, newContext);
}).rejects.toThrow(expect.objectContaining({message: expect.stringContaining(error)}));
}
});
});

Binary file not shown.