|
1 | 1 | import * as assert from 'uvu/assert'; |
2 | | -import { createElementFromConstructor } from '../../src/lib/utils'; |
| 2 | +import { |
| 3 | + createElementFromConstructor, |
| 4 | + DEPRECATED_WINDOW_PROPERTIES, |
| 5 | + isValidMemberName, |
| 6 | +} from '../../src/lib/utils'; |
3 | 7 | import { suite } from './utils'; |
4 | 8 |
|
5 | 9 | const test = suite(); |
@@ -51,4 +55,33 @@ test('createElementFromConstructor, HTML', ({ doc }) => { |
51 | 55 | assert.is(createElementFromConstructor(doc, 'IntersectionObserver'), undefined); |
52 | 56 | }); |
53 | 57 |
|
| 58 | +test('isValidMemberName rejects deprecated window properties', () => { |
| 59 | + for (const prop of DEPRECATED_WINDOW_PROPERTIES) { |
| 60 | + assert.is(isValidMemberName(prop), false, `${prop} should be rejected`); |
| 61 | + } |
| 62 | +}); |
| 63 | + |
| 64 | +test('isValidMemberName rejects known invalid prefixes', () => { |
| 65 | + assert.is(isValidMemberName('webkitSpeechRecognition'), false); |
| 66 | + assert.is(isValidMemberName('toJSON'), false); |
| 67 | + assert.is(isValidMemberName('constructor'), false); |
| 68 | + assert.is(isValidMemberName('toString'), false); |
| 69 | + assert.is(isValidMemberName('_private'), false); |
| 70 | +}); |
| 71 | + |
| 72 | +test('isValidMemberName accepts valid member names', () => { |
| 73 | + assert.is(isValidMemberName('document'), true); |
| 74 | + assert.is(isValidMemberName('localStorage'), true); |
| 75 | + assert.is(isValidMemberName('fetch'), true); |
| 76 | + assert.is(isValidMemberName('HTMLDivElement'), true); |
| 77 | + assert.is(isValidMemberName('addEventListener'), true); |
| 78 | +}); |
| 79 | + |
| 80 | +test('DEPRECATED_WINDOW_PROPERTIES contains expected entries', () => { |
| 81 | + assert.ok(DEPRECATED_WINDOW_PROPERTIES.has('SharedStorage')); |
| 82 | + assert.ok(DEPRECATED_WINDOW_PROPERTIES.has('sharedStorage')); |
| 83 | + assert.ok(DEPRECATED_WINDOW_PROPERTIES.has('AttributionReporting')); |
| 84 | + assert.ok(DEPRECATED_WINDOW_PROPERTIES.has('attributionReporting')); |
| 85 | +}); |
| 86 | + |
54 | 87 | test.run(); |
0 commit comments