UNPKG

chrome-devtools-frontend

Version:
63 lines (50 loc) 2.3 kB
// Copyright 2020 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import * as JavascriptMetadata from './javascript_metadata.js'; describe('JavaScriptMetadata', () => { let metadata: JavascriptMetadata.JavaScriptMetadata.JavaScriptMetadataImpl; before(() => { metadata = new JavascriptMetadata.JavaScriptMetadata.JavaScriptMetadataImpl(); }); it('retrieves native signature by name', () => { const signatures = metadata.signaturesForNativeFunction('webkitRequestFullScreen'); assert.deepEqual(signatures, [['?options']]); }); it('does not retrieve native signatures that are bound to an instance', () => { const signatures = metadata.signaturesForNativeFunction('find'); assert.isNull(signatures); }); describe('with static methods', () => { it('retrieves by name and class', () => { const signatures = metadata.signaturesForStaticMethod('from', 'Array'); assert.deepEqual(signatures, [['iterable', '?mapfn', '?thisArg'], ['arrayLike', '?mapfn', '?thisArg']]); }); it('does not retrieve methods that are bound to an instance', () => { const signatures = metadata.signaturesForStaticMethod('includes', 'Array'); assert.isNull(signatures); }); it('handles a non-existing class', () => { const signatures = metadata.signaturesForStaticMethod('includes', 'bogus'); assert.isNull(signatures); }); }); describe('with instance methods', () => { it('retrieves by name and class', () => { const signatures = metadata.signaturesForInstanceMethod('assign', 'HTMLSlotElement'); assert.deepEqual(signatures, [['...nodes']]); }); it('does not retrieve methods that are unbound', () => { const signatures = metadata.signaturesForInstanceMethod('webkitRequestFullScreen', 'window'); assert.isNull(signatures); }); it('does not retrieve static methods', () => { const signatures = metadata.signaturesForInstanceMethod('from', 'Array'); assert.isNull(signatures); }); it('handles a non-existing class', () => { const signatures = metadata.signaturesForInstanceMethod('from', 'Sheep'); assert.isNull(signatures); }); }); });