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>
66 lines
2.1 KiB
TypeScript
66 lines
2.1 KiB
TypeScript
/**
|
|
* @fileoverview Tests for CSP Finding.
|
|
* @author lwe@google.com (Lukas Weichselbaum)
|
|
*
|
|
* @license
|
|
* Copyright 2016 Google Inc. All rights reserved.
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
import 'jasmine';
|
|
|
|
import {Directive, Keyword} from './csp';
|
|
import {Finding, Severity, Type} from './finding';
|
|
|
|
|
|
describe('Test finding', () => {
|
|
it('Finding', () => {
|
|
const type = Type.MISSING_SEMICOLON;
|
|
const description = 'description';
|
|
const severity = Severity.HIGH;
|
|
const directive = Directive.SCRIPT_SRC;
|
|
const value = Keyword.NONE;
|
|
|
|
const finding = new Finding(type, description, severity, directive, value);
|
|
|
|
expect(finding.type).toBe(type);
|
|
expect(finding.description).toBe(description);
|
|
expect(finding.severity).toBe(severity);
|
|
expect(finding.directive).toBe(directive);
|
|
expect(finding.value).toBe(value);
|
|
});
|
|
|
|
it('GetHighestSeverity', () => {
|
|
const finding1 = new Finding(
|
|
Type.MISSING_SEMICOLON, 'description', Severity.HIGH,
|
|
Directive.SCRIPT_SRC);
|
|
const finding2 = new Finding(
|
|
Type.MISSING_SEMICOLON, 'description', Severity.MEDIUM,
|
|
Directive.SCRIPT_SRC);
|
|
const finding3 = new Finding(
|
|
Type.MISSING_SEMICOLON, 'description', Severity.INFO,
|
|
Directive.SCRIPT_SRC);
|
|
|
|
expect(Finding.getHighestSeverity([
|
|
finding1, finding3, finding2, finding1
|
|
])).toBe(Severity.HIGH);
|
|
expect(Finding.getHighestSeverity([
|
|
finding3, finding2
|
|
])).toBe(Severity.MEDIUM);
|
|
expect(Finding.getHighestSeverity([
|
|
finding3, finding3
|
|
])).toBe(Severity.INFO);
|
|
expect(Finding.getHighestSeverity([])).toBe(Severity.NONE);
|
|
});
|
|
});
|