test
Some checks failed
test / Run tests (push) Failing after 6s
build / Build (push) Failing after 9s
Some checks failed
test / Run tests (push) Failing after 6s
build / Build (push) Failing after 9s
This commit is contained in:
@ -1,37 +1,27 @@
|
||||
import { formatTime, nextTime, ltever, checkSilenceUpdate } from "./utils";
|
||||
import { describe, test, expect, it } from "vitest";
|
||||
import { nextTime, ltever, checkSilenceUpdate } from "./utils";
|
||||
import dayjs from "dayjs";
|
||||
|
||||
describe("nextTime", () => {
|
||||
test("每分钟表达式", () => {
|
||||
expect(nextTime("* * * * *")).toEqual(
|
||||
dayjs(new Date()).add(1, "minute").format("YYYY-MM-DD HH:mm:00")
|
||||
);
|
||||
expect(nextTime("* * * * *")).toEqual(dayjs(new Date()).add(1, "minute").format("YYYY-MM-DD HH:mm:00"));
|
||||
});
|
||||
test("每分钟一次表达式", () => {
|
||||
expect(nextTime("once * * * *")).toEqual(
|
||||
dayjs(new Date())
|
||||
.add(1, "minute")
|
||||
.format("YYYY-MM-DD HH:mm 每分钟运行一次")
|
||||
dayjs(new Date()).add(1, "minute").format("YYYY-MM-DD HH:mm 每分钟运行一次")
|
||||
);
|
||||
});
|
||||
test("每小时一次表达式", () => {
|
||||
expect(nextTime("* once * * *")).toEqual(
|
||||
dayjs(new Date()).add(1, "hour").format("YYYY-MM-DD HH 每小时运行一次")
|
||||
);
|
||||
expect(nextTime("* once * * *")).toEqual(dayjs(new Date()).add(1, "hour").format("YYYY-MM-DD HH 每小时运行一次"));
|
||||
});
|
||||
test("每天一次表达式", () => {
|
||||
expect(nextTime("* * once * *")).toEqual(
|
||||
dayjs(new Date()).add(1, "day").format("YYYY-MM-DD 每天运行一次")
|
||||
);
|
||||
expect(nextTime("* * once * *")).toEqual(dayjs(new Date()).add(1, "day").format("YYYY-MM-DD 每天运行一次"));
|
||||
});
|
||||
test("每月一次表达式", () => {
|
||||
expect(nextTime("* * * once *")).toEqual(
|
||||
dayjs(new Date()).add(1, "month").format("YYYY-MM 每月运行一次")
|
||||
);
|
||||
expect(nextTime("* * * once *")).toEqual(dayjs(new Date()).add(1, "month").format("YYYY-MM 每月运行一次"));
|
||||
});
|
||||
test("每星期一次表达式", () => {
|
||||
expect(nextTime("* * * * once")).toEqual(
|
||||
dayjs(new Date()).add(1, "week").format("YYYY-MM-DD 每星期运行一次")
|
||||
);
|
||||
expect(nextTime("* * * * once")).toEqual(dayjs(new Date()).add(1, "week").format("YYYY-MM-DD 每星期运行一次"));
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
import { Metadata } from "@App/app/repo/scripts";
|
||||
import { CronTime } from "cron";
|
||||
import dayjs from "dayjs";
|
||||
import semver from "semver";
|
||||
@ -186,3 +187,27 @@ export function openInCurrentTab(url: string) {
|
||||
export function isDebug() {
|
||||
return process.env.NODE_ENV === "development";
|
||||
}
|
||||
|
||||
// 检查订阅规则是否改变,是否能够静默更新
|
||||
export function checkSilenceUpdate(oldMeta: Metadata, newMeta: Metadata): boolean {
|
||||
// 判断connect是否改变
|
||||
const oldConnect: { [key: string]: boolean } = {};
|
||||
const newConnect: { [key: string]: boolean } = {};
|
||||
oldMeta.connect &&
|
||||
oldMeta.connect.forEach((val) => {
|
||||
oldConnect[val] = true;
|
||||
});
|
||||
newMeta.connect &&
|
||||
newMeta.connect.forEach((val) => {
|
||||
newConnect[val] = true;
|
||||
});
|
||||
// 老的里面没有新的就需要用户确认了
|
||||
const keys = Object.keys(newConnect);
|
||||
for (let i = 0; i < keys.length; i += 1) {
|
||||
const key = keys[i];
|
||||
if (!oldConnect[key]) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
Reference in New Issue
Block a user