OAFLOW1 支持负责人本人报销兜底审批
这个提交包含在:
@@ -2,7 +2,7 @@ const Fastify = require("fastify");
|
||||
|
||||
const { AppError } = require("../../../src/utils/AppError");
|
||||
|
||||
const featureFlagState = {
|
||||
const featureFlagState = vi.hoisted(() => ({
|
||||
portalHome: true,
|
||||
announcements: false,
|
||||
presenceBoard: false,
|
||||
@@ -13,7 +13,7 @@ const featureFlagState = {
|
||||
projectDomain: false,
|
||||
projectCommunicationLog: false,
|
||||
projectClosureChecklist: false,
|
||||
};
|
||||
}));
|
||||
|
||||
vi.mock("../../../src/services/featureFlags", () => ({
|
||||
FEATURE_FLAG_KEYS: {
|
||||
@@ -224,13 +224,25 @@ async function buildApp(options = {}) {
|
||||
},
|
||||
featureFlag: {
|
||||
findUnique: vi.fn(async ({ where }) => {
|
||||
if (where.flag_key !== "portal_home_v1") {
|
||||
const enabledByFlagKey = {
|
||||
portal_home_v1: featureFlagState.portalHome,
|
||||
announcements_v1: featureFlagState.announcements,
|
||||
presence_board_v1: featureFlagState.presenceBoard,
|
||||
weekly_report_v1: featureFlagState.weeklyReport,
|
||||
employee_lifecycle_v1: featureFlagState.employeeLifecycle,
|
||||
todo_board_v1: featureFlagState.todoBoard,
|
||||
payment_batch_v1: featureFlagState.paymentBatch,
|
||||
project_domain_v1: featureFlagState.projectDomain,
|
||||
project_communication_log_v1: featureFlagState.projectCommunicationLog,
|
||||
project_closure_checklist_v1: featureFlagState.projectClosureChecklist,
|
||||
};
|
||||
if (!Object.prototype.hasOwnProperty.call(enabledByFlagKey, where.flag_key)) {
|
||||
return null;
|
||||
}
|
||||
return {
|
||||
id: "flag-portal-home",
|
||||
flag_key: "portal_home_v1",
|
||||
override_mode: "force_on",
|
||||
id: `flag-${where.flag_key}`,
|
||||
flag_key: where.flag_key,
|
||||
override_mode: enabledByFlagKey[where.flag_key] ? "force_on" : "force_off",
|
||||
rollout_type: "global",
|
||||
department_ids: [],
|
||||
note: "",
|
||||
@@ -284,16 +296,16 @@ async function buildApp(options = {}) {
|
||||
app.decorate("prisma", prisma);
|
||||
app.decorate("config", {
|
||||
appTimezone: "Asia/Shanghai",
|
||||
portalHomeEnabled: true,
|
||||
announcementsEnabled: false,
|
||||
presenceBoardEnabled: false,
|
||||
weeklyReportEnabled: false,
|
||||
employeeLifecycleEnabled: false,
|
||||
todoBoardEnabled: false,
|
||||
paymentBatchEnabled: false,
|
||||
projectDomainEnabled: false,
|
||||
projectCommunicationLogEnabled: false,
|
||||
projectClosureChecklistEnabled: false,
|
||||
portalHomeEnabled: featureFlagState.portalHome,
|
||||
announcementsEnabled: featureFlagState.announcements,
|
||||
presenceBoardEnabled: featureFlagState.presenceBoard,
|
||||
weeklyReportEnabled: featureFlagState.weeklyReport,
|
||||
employeeLifecycleEnabled: featureFlagState.employeeLifecycle,
|
||||
todoBoardEnabled: featureFlagState.todoBoard,
|
||||
paymentBatchEnabled: featureFlagState.paymentBatch,
|
||||
projectDomainEnabled: featureFlagState.projectDomain,
|
||||
projectCommunicationLogEnabled: featureFlagState.projectCommunicationLog,
|
||||
projectClosureChecklistEnabled: featureFlagState.projectClosureChecklist,
|
||||
});
|
||||
app.decorate("authenticate", async (request) => {
|
||||
if (!request.headers.authorization) {
|
||||
@@ -509,6 +521,7 @@ describe("portal routes", () => {
|
||||
pendingBatchCount: 3,
|
||||
failedItemCount: 2,
|
||||
riskCount: 0,
|
||||
paymentBatchEnabled: true,
|
||||
href: "/ap-operations",
|
||||
});
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户