|
|
|
|
import assert from "node:assert/strict";
|
|
|
|
|
import { readFileSync } from "node:fs";
|
|
|
|
|
import { resolve } from "node:path";
|
|
|
|
|
|
|
|
|
|
const root = resolve(import.meta.dirname, "..");
|
|
|
|
|
const router = readFileSync(resolve(root, "src/router/index.js"), "utf8");
|
|
|
|
|
const sidebar = readFileSync(resolve(root, "src/layout/components/Sidebar/index.vue"), "utf8");
|
|
|
|
|
const scorePage = readFileSync(resolve(root, "src/views/teacherEnd/score/index.vue"), "utf8");
|
|
|
|
|
const reviewPage = readFileSync(resolve(root, "src/views/teacherEnd/score/TaskReviewPanel.vue"), "utf8");
|
|
|
|
|
|
|
|
|
|
assert.match(router, /path:\s*"\/task-review"[\s\S]*?title:\s*"任务评阅"/);
|
|
|
|
|
assert.match(sidebar, /\{ title: "任务评阅", path: "\/task-review\/index" \},\s*\{ title: "成绩中心", path: "\/score\/index" \}/);
|
|
|
|
|
assert.doesNotMatch(scorePage, /label="任务评阅"/);
|
|
|
|
|
assert.match(reviewPage, /v-for="item in teachingClasses"/);
|
|
|
|
|
assert.match(reviewPage, /\.task-review \{[\s\S]*?background: linear-gradient\(135deg, rgba\(6, 23, 36, 0\.84\), rgba\(4, 12, 23, 0\.78\)\)/);
|
|
|
|
|
assert.match(reviewPage, /\.task-review__student-preview \{[\s\S]*?min-height: 580px/);
|
|
|
|
|
|
|
|
|
|
console.log("task review navigation is a standalone teacher menu item");
|