| /* This file is a part of @mdn/browser-compat-data |
| * See LICENSE file for more information. */ |
| |
| import assert from 'node:assert/strict'; |
| |
| import query from './query.js'; |
| |
| describe('query()', () => { |
| describe('should throw on non-existent features', () => { |
| assert.throws(() => query('nonExistentNameSpace'), ReferenceError); |
| assert.throws(() => query('api.NonExistentFeature'), ReferenceError); |
| assert.throws( |
| () => query('api.NonExistentFeature.subFeature'), |
| ReferenceError, |
| ); |
| assert.throws(() => query('foo.'), ReferenceError); |
| }); |
| |
| it('should return the expected point in the tree (namespace)', () => { |
| const obj = query('css'); |
| |
| assert.ok(!('__compat' in obj)); |
| assert.ok('properties' in obj); |
| assert.ok('at-rules' in obj); |
| }); |
| |
| it('should return the expected point in the tree (feature)', () => { |
| const obj = query('api.HTMLAnchorElement.href'); |
| |
| assert.ok('support' in obj.__compat); |
| assert.ok('status' in obj.__compat); |
| assert.equal( |
| 'https://developer.mozilla.org/docs/Web/API/HTMLAnchorElement/href', |
| obj.__compat.mdn_url, |
| ); |
| }); |
| |
| it('should return the expected point in the tree (feature with children)', () => { |
| const obj = query('api.HTMLAnchorElement'); |
| |
| assert.ok('__compat' in obj); |
| assert.ok('charset' in obj); |
| assert.ok('href' in obj); |
| }); |
| }); |