35 lines
1.0 KiB
JavaScript
35 lines
1.0 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import fs from "node:fs";
|
|
import path from "node:path";
|
|
|
|
const viewPath = path.resolve("src/views/SalesPlanningView.vue");
|
|
const source = fs.readFileSync(viewPath, "utf8");
|
|
|
|
assert.match(
|
|
source,
|
|
/promised_date_touched:\s*false/,
|
|
"new sales order lines should track whether line promised date was manually edited"
|
|
);
|
|
assert.match(
|
|
source,
|
|
/@input="markSalesOrderItemPromisedDateTouched\(item\)"/,
|
|
"line promised date input should mark the row as user-edited"
|
|
);
|
|
assert.match(
|
|
source,
|
|
/syncSalesOrderItemPromisedDatesFromHeader/,
|
|
"header promised date changes should synchronize eligible line dates"
|
|
);
|
|
assert.match(
|
|
source,
|
|
/!item\.promised_date_touched/,
|
|
"sync should only update untouched line promised dates"
|
|
);
|
|
assert.match(
|
|
source,
|
|
/promised_date:\s*item\.promised_date\s*\|\|\s*salesOrderForm\.promised_date\s*\|\|\s*null/,
|
|
"submit should fall back empty line dates to the sales order promised date"
|
|
);
|
|
|
|
console.log("sales order line promised date default checks passed");
|