Files
formipay/node_modules/metaviewport-parser/test.js~
dwindown e8fbfb14c1 fix: prevent asset conflicts between React and Grid.js versions
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>
2026-04-18 17:02:14 +07:00

75 lines
3.3 KiB
JavaScript

var metaparser = require("index")
, expect = require("expect.js");
var buildParsedContent = function (valid, unknown, invalid) {
var parsed = {validProperties: {}, unknownProperties: {}, invalidValues: {}};
if (valid) {
parsed.validProperties = valid;
}
if (unknown) {
parsed.unknownProperties = unknown;
}
if (invalid) {
parsed.invalidValues = invalid;
}
return parsed;
}
var contentAttributeTests = [
{desc: "parse correctly a simple valid viewport declaration",
inp: "width=device-width, initial-scale=1, maximum-scale=2",
out: buildParsedContent({"width":"device-width","initial-scale":1, "maximum-scale":2})},
{desc: "ignore the string after a number in a value",
inp: "width=400px",
out: buildParsedContent({"width":400})},
{desc: "handle a semi-colon as a comma",
inp: "width=400; initial-scale=1.5",
out: buildParsedContent({"width":400,"initial-scale":1.5})},
{desc: "report separately unknown property names",
inp:"widht=400px; initial-scale=1.5",
out: buildParsedContent({"initial-scale":1.5}, {"widht": "400px"})},
{desc: "handle whitespace correctly",
inp:" width=400\
\r, initial-scale=2",
out:buildParsedContent({"width":400, "initial-scale":2})},
{desc: "report unknown values",
inp:"width=foo",
out: buildParsedContent({"width":null}, null, {"width":"foo"})}
];
var UA1 = { deviceWidth: 320, deviceHeight: 480, minZoom: 0.25, maxZoom: 4};
var UA2 = { deviceWidth: 640, deviceHeight: 960, minZoom: 0.25, maxZoom: 4};
var viewportRenderingTests = [
{inp: "width=400, initial-scale=1", ua: UA1, out:{zoom: 1, width: 400, height: 600, userZoom: "zoom"}},
{inp: "width=400, initial-scale=1", ua: UA2, out:{zoom: 1, width: 640, height: 960, userZoom: "zoom"}},
{inp: "width=400", ua: UA1, out:{zoom: null, width: 400, height: 600, userZoom: "zoom"}},
{inp: "initial-scale=1", ua: UA1, out:{zoom: 1, width: 320, height: 480, userZoom: "zoom"}},
{inp: "initial-scale=2.0,height=device-width", ua: UA1, out:{zoom: 2, width: 213, height: 320, userZoom: "zoom"}},
{inp: "width=480, initial-scale=2.0, user-scalable=no", ua: UA1, out:{zoom: 2, width: 480, height: 720, userZoom: "fixed"}},
];
contentAttributeTests.forEach(function (test) {
describe("Parsing " + test.inp, function () {
it('should ' + test.desc + ' "' + test.inp + '"', function () {
var out = metaparser.parseMetaViewPortContent(test.inp);
expect(out).to.eql(test.out);
// strict deep equality for valid properties
Object.keys(out.validProperties).forEach(function (name) {
expect(out.validProperties[name]).to.equal(test.out.validProperties[name]);
});
});
});
});
viewportRenderingTests.forEach(function (test) {
describe("Parsing " + test.inp + " for rendering with " + JSON.stringify(test.ua), function () {
it('should match the expected output', function () {
var viewportProps = metaparser.parseMetaViewPortContent(test.inp);
var renderingData = metaparser.getRenderingDataFromViewport(viewportProps.validProperties, test.ua.deviceWidth, test.ua.deviceHeight, test.ua.maxZoom, test.ua.minZoom);
expect(renderingData).to.eql(test.out);
});
});
});