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.
dianshang-qianduan/tests/task-publication.static.tes...

20 lines
1.2 KiB
JavaScript

const assert = require("assert");
const fs = require("fs");
const path = require("path");
const root = path.resolve(__dirname, "..");
const read = (file) => fs.readFileSync(path.join(root, file), "utf8");
const taskPage = read("src/views/teacherEnd/task/index.vue");
const sidebar = read("src/layout/components/Sidebar/index.vue");
const api = read("src/api/teacher.js");
assert(taskPage.includes("listTrainingTasks"), "task allocation must use training tasks as its data source");
assert(taskPage.includes("getTaskPublication"), "task allocation must load the selected class publication state");
assert(taskPage.includes("tasks.value.map((task) => task.taskKey)"), "an unconfigured class must default to all tasks selected");
assert(taskPage.includes("保存发布配置"), "task allocation must require an explicit save");
assert(api.includes("selectTaskPublicationByClassId"), "publication API missing");
assert(sidebar.includes("filterStudentCourseNavigation"), "student menu must be filtered by published training tasks");
assert(sidebar.includes("publishedTaskKeys"), "student menu must retain published task keys");
console.log("task publication front-end contract passed");