JhHardwareWRS/scripts/test-erp-login-confirm.mjs
2026-07-06 11:17:42 +08:00

39 lines
2.1 KiB
JavaScript

import assert from "node:assert/strict";
import { readFileSync } from "node:fs";
const appJson = JSON.parse(readFileSync("app.json", "utf8"));
const apiSource = readFileSync("utils/api.js", "utf8");
const pageJs = readFileSync("pages/erpLoginConfirm/erpLoginConfirm.js", "utf8");
const pageWxml = readFileSync("pages/erpLoginConfirm/erpLoginConfirm.wxml", "utf8");
const previewApi = apiSource.match(/const getErpLoginPreview = async[\s\S]*?\n\}\)\)/)?.[0] ?? "";
const confirmApi = apiSource.match(/const confirmErpLogin = async[\s\S]*?\n\}\)\)/)?.[0] ?? "";
const cancelApi = apiSource.match(/const cancelErpLogin = async[\s\S]*?\n\}\)\)/)?.[0] ?? "";
assert.ok(appJson.pages.includes("pages/erpLoginConfirm/erpLoginConfirm"));
assert.match(apiSource, /const getErpLoginPreview = async \(ticket, sessionId\) =>/);
assert.match(apiSource, /const confirmErpLogin = async \(ticket, sessionId, phoneCode\) =>/);
assert.match(apiSource, /const cancelErpLogin = async \(ticket, sessionId\) =>/);
assert.match(previewApi, /session_id: sessionId/);
assert.match(confirmApi, /session_id: sessionId/);
assert.match(cancelApi, /session_id: sessionId/);
assert.match(pageJs, /decodeRepeated\(options\.scene/);
assert.match(pageJs, /options\.ticket/);
assert.match(pageJs, /options\.session_id/);
assert.match(pageJs, /options\.sessionId/);
assert.match(pageJs, /extractTicket/);
assert.match(pageJs, /extractSessionId/);
assert.match(pageJs, /\['ticket', 't'\]/);
assert.match(pageJs, /\['session_id', 'sessionId', 's'\]/);
assert.match(pageJs, /confirmErpLogin/);
assert.match(pageJs, /confirmErpLogin\(this\.data\.ticket,\s*this\.data\.sessionId,\s*phoneCode\)/);
assert.match(pageJs, /cancelErpLogin\(this\.data\.ticket,\s*this\.data\.sessionId\)/);
assert.match(pageWxml, /getPhoneNumber/);
assert.match(pageWxml, /确认登录/);
assert.match(pageWxml, /取消/);
assert.doesNotMatch(pageJs, /ensureFactoryLocation/);
assert.doesNotMatch(pageJs, /getClockState/);
assert.doesNotMatch(pageJs, /access_token|AuthSession|saveAuth|setAuth/);
assert.doesNotMatch(apiSource, /confirmErpLogin[\s\S]*access_token/);
console.log("erp login confirm page checks passed");