You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
17 lines
1.2 KiB
JavaScript
17 lines
1.2 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import { readFileSync } from "node:fs";
|
|
import { resolve } from "node:path";
|
|
|
|
const root = resolve(import.meta.dirname, "..");
|
|
const teacherTaskPage = readFileSync(resolve(root, "src/views/teacherEnd/trainingTask/index.vue"), "utf8");
|
|
const studentDemoPage = readFileSync(resolve(root, "src/views/studentDemo/index.vue"), "utf8");
|
|
|
|
assert.match(teacherTaskPage, /window\.open\("\/#\/student-demo", "_blank"\)/, "学生端讲解必须通过 Hash 路由打开演示入口");
|
|
assert.match(studentDemoPage, /import useUserStore from "@\/store\/modules\/user";/, "演示页必须能更新当前窗口的用户状态");
|
|
assert.match(studentDemoPage, /userStore\.token = res\.data\.token;/, "兑换成功后必须替换教师窗口初始 token");
|
|
assert.match(studentDemoPage, /userStore\.userInfo = res\.data;/, "兑换成功后必须替换教师窗口初始用户身份");
|
|
assert.match(studentDemoPage, /window\.location\.hash = "#\/index";/, "兑换演示学生会话后必须切换到学生首页 Hash");
|
|
assert.match(studentDemoPage, /window\.location\.reload\(\);/, "切换演示身份后必须重新初始化动态路由和侧栏");
|
|
|
|
console.log("student demo uses hash routes instead of falling back to the teacher homepage");
|