updates on the builded changes

This commit is contained in:
2026-09-03 13:04:13 +05:30
parent d71c899f02
commit 8936669f94
3 changed files with 42 additions and 0 deletions

View File

@@ -1,7 +1,28 @@
const webpack = require('webpack');
const WorkBoxPlugin = require('workbox-webpack-plugin');
// Fail the build loudly when an API base is missing, instead of emitting a
// bundle in which every request URL is the string "undefined/orders/..." —
// a relative path that silently resolves against whatever host the console is
// served from. That produced a deploy where the API base appeared to be the
// front-end's own origin. Only enforced for production builds; `npm start`
// is left alone.
const REQUIRED_PROD_ENV = ['REACT_APP_URL', 'REACT_APP_URL2'];
function assertRequiredEnv() {
if (process.env.NODE_ENV !== 'production') return;
const missing = REQUIRED_PROD_ENV.filter((k) => !process.env[k]);
if (!missing.length) return;
throw new Error(
`\n\nBuild aborted — missing required environment variable(s): ${missing.join(', ')}.\n` +
'Define them in .env (loaded by every build) or build via `npm run build:staging` / `build:dev`,\n' +
'which load .env.staging / .env.development through env-cmd.\n'
);
}
module.exports = function override(config) {
assertRequiredEnv();
config.resolve.fallback = {
process: require.resolve('process/browser'),
// zlib: require.resolve('browserify-zlib'),

View File

@@ -1,4 +1,5 @@
import axios from 'axios';
import dayjs from 'dayjs';
import { OpenToast } from 'components/nearle_components/OpenToast';
const tenid = localStorage.getItem('tenantid');

View File

@@ -438,3 +438,23 @@ describe('orders.js empty-batch guard contract', () => {
expect(guardFires(normaliseAssignResponse(zoned))).toBe(false);
});
});
// ==========================================================================
// Regression: cancelMultipleOrder referenced dayjs without importing it,
// throwing a ReferenceError on the multi-cancel confirm button.
// ==========================================================================
describe('cancelMultipleOrder', () => {
it('builds a cancelled timestamp without throwing a ReferenceError', async () => {
const { cancelMultipleOrder } = require('./api');
axios.put.mockResolvedValue({ data: { status: true } });
await cancelMultipleOrder([{ orderheaderid: 1 }, { orderheaderid: 2 }]);
const [, body] = axios.put.mock.calls[0];
expect(body).toHaveLength(2);
body.forEach((row) => {
expect(row.orderstatus).toBe('cancelled');
// Real formatted timestamp, not "Invalid Date" or undefined.
expect(row.cancelled).toMatch(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/);
});
});
});