Add coexistence checks to all enqueue methods to prevent loading both React and Grid.js assets simultaneously. Changes: - ReactAdmin.php: Only enqueue React assets when ?react=1 - Init.php: Skip Grid.js when React active on admin pages - Form.php, Coupon.php, Access.php: Restore classic assets when ?react=0 - Customer.php, Product.php, License.php: Add coexistence checks Now the toggle between Classic and React versions works correctly. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
196 lines
7.2 KiB
JavaScript
196 lines
7.2 KiB
JavaScript
"use strict";
|
|
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
|
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
|
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
|
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
|
|
var _chai = require("chai");
|
|
|
|
var _webpack = require("webpack");
|
|
|
|
var _bundle = require("./bundle");
|
|
|
|
var _path = require("path");
|
|
|
|
describe('RtlCss Webpack Plugin', function () {
|
|
it('should contain the correct content', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
var fs;
|
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
while (1) {
|
|
switch (_context.prev = _context.next) {
|
|
case 0:
|
|
_context.next = 2;
|
|
return (0, _bundle.bundle)();
|
|
|
|
case 2:
|
|
fs = _context.sent;
|
|
(0, _chai.expect)(fs.readFileSync((0, _bundle.filePath)('bundle.css'), 'utf-8')).to.equal('.a {\n float: left;\n}\n\n');
|
|
(0, _chai.expect)(fs.readFileSync((0, _bundle.filePath)('bundle.rtl.css'), 'utf-8')).to.equal('.a {\n float: right;\n}\n\n');
|
|
|
|
case 5:
|
|
case "end":
|
|
return _context.stop();
|
|
}
|
|
}
|
|
}, _callee);
|
|
})));
|
|
it('should create bundle per chunk', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
var addChunk, fs;
|
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
while (1) {
|
|
switch (_context2.prev = _context2.next) {
|
|
case 0:
|
|
addChunk = function addChunk(x) {
|
|
return (0, _extends2["default"])({}, x, {
|
|
entry: (0, _extends2["default"])({}, x.entry, {
|
|
bundle2: (0, _bundle.fixture)('index2.js')
|
|
})
|
|
});
|
|
};
|
|
|
|
_context2.next = 3;
|
|
return (0, _bundle.bundle)(undefined, addChunk);
|
|
|
|
case 3:
|
|
fs = _context2.sent;
|
|
(0, _chai.expect)(fs.readFileSync((0, _bundle.filePath)('bundle.rtl.css'), 'utf-8')).to.equal('.a {\n float: right;\n}\n\n');
|
|
(0, _chai.expect)(fs.readFileSync((0, _bundle.filePath)('bundle2.rtl.css'), 'utf-8')).to.equal('.b {\n float: right;\n}\n\n');
|
|
|
|
case 6:
|
|
case "end":
|
|
return _context2.stop();
|
|
}
|
|
}
|
|
}, _callee2);
|
|
})));
|
|
it('should contain the correct content when minimized', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
var minimize, fs;
|
|
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
while (1) {
|
|
switch (_context3.prev = _context3.next) {
|
|
case 0:
|
|
minimize = function minimize(x) {
|
|
return (0, _extends2["default"])({}, x, {
|
|
plugins: x.plugins.concat(new _webpack.LoaderOptionsPlugin({
|
|
minimize: true
|
|
}))
|
|
});
|
|
};
|
|
|
|
_context3.next = 3;
|
|
return (0, _bundle.bundle)(undefined, minimize);
|
|
|
|
case 3:
|
|
fs = _context3.sent;
|
|
(0, _chai.expect)(fs.readFileSync((0, _bundle.filePath)('bundle.css'), 'utf-8')).to.equal('.a {\n float: left;\n}\n\n');
|
|
(0, _chai.expect)(fs.readFileSync((0, _bundle.filePath)('bundle.rtl.css'), 'utf-8')).to.equal('.a {\n float: right;\n}\n\n');
|
|
|
|
case 6:
|
|
case "end":
|
|
return _context3.stop();
|
|
}
|
|
}
|
|
}, _callee3);
|
|
})));
|
|
it('should set filename according to options as object', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
var fs;
|
|
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
while (1) {
|
|
switch (_context4.prev = _context4.next) {
|
|
case 0:
|
|
_context4.next = 2;
|
|
return (0, _bundle.bundle)({
|
|
filename: 'foo.rtl.css'
|
|
});
|
|
|
|
case 2:
|
|
fs = _context4.sent;
|
|
// eslint-disable-next-line no-unused-expressions
|
|
(0, _chai.expect)(fs.existsSync((0, _bundle.filePath)('foo.rtl.css'))).to.be["true"];
|
|
|
|
case 4:
|
|
case "end":
|
|
return _context4.stop();
|
|
}
|
|
}
|
|
}, _callee4);
|
|
})));
|
|
it('should set filename according to options as string', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
|
|
var fs;
|
|
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
while (1) {
|
|
switch (_context5.prev = _context5.next) {
|
|
case 0:
|
|
_context5.next = 2;
|
|
return (0, _bundle.bundle)('foo.rtl.css');
|
|
|
|
case 2:
|
|
fs = _context5.sent;
|
|
// eslint-disable-next-line no-unused-expressions
|
|
(0, _chai.expect)(fs.existsSync((0, _bundle.filePath)('foo.rtl.css'))).to.be["true"];
|
|
|
|
case 4:
|
|
case "end":
|
|
return _context5.stop();
|
|
}
|
|
}
|
|
}, _callee5);
|
|
})));
|
|
it('should support [hash]', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
|
|
var fs, hashedFileName;
|
|
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
while (1) {
|
|
switch (_context6.prev = _context6.next) {
|
|
case 0:
|
|
_context6.next = 2;
|
|
return (0, _bundle.bundle)('foo.[hash].rtl.css');
|
|
|
|
case 2:
|
|
fs = _context6.sent;
|
|
hashedFileName = fs.readdirSync((0, _path.join)(process.cwd(), 'dist')).find(function (s) {
|
|
return s.startsWith('foo');
|
|
});
|
|
(0, _chai.expect)(hashedFileName).not.to.equal('foo.[hash].rtl.css');
|
|
(0, _chai.expect)(hashedFileName).to.match(/foo\.\w+\.rtl\.css/);
|
|
|
|
case 6:
|
|
case "end":
|
|
return _context6.stop();
|
|
}
|
|
}
|
|
}, _callee6);
|
|
})));
|
|
it('should support [name]', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
|
var addChunk, fs;
|
|
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
while (1) {
|
|
switch (_context7.prev = _context7.next) {
|
|
case 0:
|
|
addChunk = function addChunk(x) {
|
|
return (0, _extends2["default"])({}, x, {
|
|
entry: (0, _extends2["default"])({}, x.entry, {
|
|
bundle2: (0, _bundle.fixture)('index2.js')
|
|
})
|
|
});
|
|
};
|
|
|
|
_context7.next = 3;
|
|
return (0, _bundle.bundle)('[name]-rtl.css', addChunk);
|
|
|
|
case 3:
|
|
fs = _context7.sent;
|
|
(0, _chai.expect)(fs.readFileSync((0, _bundle.filePath)('bundle-rtl.css'), 'utf-8')).to.equal('.a {\n float: right;\n}\n\n');
|
|
(0, _chai.expect)(fs.readFileSync((0, _bundle.filePath)('bundle2-rtl.css'), 'utf-8')).to.equal('.b {\n float: right;\n}\n\n');
|
|
|
|
case 6:
|
|
case "end":
|
|
return _context7.stop();
|
|
}
|
|
}
|
|
}, _callee7);
|
|
})));
|
|
}); |