ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 15.6 kB
Source Map (JSON)
{"version":3,"file":"ng-zorro-antd-core-testing.mjs","sources":["../../components/core/testing/event-objects.ts","../../components/core/testing/dispatch-events.ts","../../components/core/testing/type-in-element.ts","../../components/core/testing/wrapped-error-message.ts","../../components/core/testing/fake-viewport-ruler.ts","../../components/core/testing/mock-ng-zone.ts","../../components/core/testing/component-bed.ts","../../components/core/testing/public-api.ts","../../components/core/testing/ng-zorro-antd-core-testing.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n/** Creates a browser MouseEvent with the specified options. */\nexport function createMouseEvent(type: string, x: number = 0, y: number = 0, button: number = 0): MouseEvent {\n const event = document.createEvent('MouseEvent');\n\n event.initMouseEvent(\n type,\n true /* canBubble */,\n false /* cancelable */,\n window /* view */,\n 0 /* detail */,\n x /* screenX */,\n y /* screenY */,\n x /* clientX */,\n y /* clientY */,\n false /* ctrlKey */,\n false /* altKey */,\n false /* shiftKey */,\n false /* metaKey */,\n button /* button */,\n null /* relatedTarget */\n );\n\n // `initMouseEvent` doesn't allow us to pass the `buttons` and\n // defaults it to 0 which looks like a fake event.\n Object.defineProperty(event, 'buttons', { get: () => 1 });\n\n return event;\n}\n\n/** Creates a browser TouchEvent with the specified pointer coordinates. */\nexport function createTouchEvent(type: string, pageX: number = 0, pageY: number = 0): UIEvent {\n // In favor of creating events that work for most of the browsers, the event is created\n // as a basic UI Event. The necessary details for the event will be set manually.\n const event = new UIEvent(type, { detail: 0, view: window });\n const touchDetails = { pageX, pageY, clientX: pageX, clientY: pageY };\n\n // Most of the browsers don't have a \"initTouchEvent\" method that can be used to define\n // the touch details.\n Object.defineProperties(event, {\n touches: { value: [touchDetails] },\n targetTouches: { value: [touchDetails] },\n changedTouches: { value: [touchDetails] }\n });\n\n return event;\n}\n\n/** Dispatches a keydown event from an element. */\nexport function createKeyboardEvent(\n type: string,\n keyCode: number,\n target?: Element,\n key?: string,\n ctrlKey?: boolean,\n metaKey?: boolean,\n shiftKey?: boolean\n): KeyboardEvent {\n const event = document.createEvent('KeyboardEvent') as NzSafeAny;\n const originalPreventDefault = event.preventDefault;\n\n // Firefox does not support `initKeyboardEvent`, but supports `initKeyEvent`.\n if (event.initKeyEvent) {\n event.initKeyEvent(type, true, true, window, 0, 0, 0, 0, 0, keyCode);\n } else {\n event.initKeyboardEvent(type, true, true, window, 0, key, 0, '', false);\n }\n\n // Webkit Browsers don't set the keyCode when calling the init function.\n // See related bug https://bugs.webkit.org/show_bug.cgi?id=16735\n Object.defineProperties(event, {\n keyCode: { get: () => keyCode },\n key: { get: () => key },\n target: { get: () => target },\n ctrlKey: { get: () => ctrlKey },\n metaKey: { get: () => metaKey },\n shiftKey: { get: () => shiftKey }\n });\n\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n event.preventDefault = function () {\n Object.defineProperty(event, 'defaultPrevented', { get: () => true, configurable: true });\n // eslint-disable-next-line prefer-rest-params\n return originalPreventDefault.apply(this, arguments);\n };\n\n return event;\n}\n\n/** Creates a fake event object with any desired event type. */\nexport function createFakeEvent(type: string, canBubble: boolean = true, cancelable: boolean = true): Event {\n const event = document.createEvent('Event');\n event.initEvent(type, canBubble, cancelable);\n return event;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { createFakeEvent, createKeyboardEvent, createMouseEvent, createTouchEvent } from './event-objects';\n\n/** Utility to dispatch any event on a Node. */\nexport function dispatchEvent(node: Node | Window, event: Event): Event {\n node.dispatchEvent(event);\n return event;\n}\n\n/** Shorthand to dispatch a fake event on a specified node. */\nexport function dispatchFakeEvent(node: Node | Window, type: string, canBubble?: boolean): Event {\n return dispatchEvent(node, createFakeEvent(type, canBubble));\n}\n\n/** Shorthand to dispatch a keyboard event with a specified key code. */\nexport function dispatchKeyboardEvent(node: Node, type: string, keyCode: number, target?: Element): KeyboardEvent {\n return dispatchEvent(node, createKeyboardEvent(type, keyCode, target)) as KeyboardEvent;\n}\n\n/** Shorthand to dispatch a mouse event on the specified coordinates. */\nexport function dispatchMouseEvent(\n node: Node,\n type: string,\n x: number = 0,\n y: number = 0,\n event: MouseEvent = createMouseEvent(type, x, y)\n): MouseEvent {\n return dispatchEvent(node, event) as MouseEvent;\n}\n\n/** Shorthand to dispatch a touch event on the specified coordinates. */\nexport function dispatchTouchEvent(node: Node, type: string, x: number = 0, y: number = 0): TouchEvent {\n return dispatchEvent(node, createTouchEvent(type, x, y)) as TouchEvent;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { dispatchFakeEvent } from './dispatch-events';\n\n/**\n * Focuses an input, sets its value and dispatches\n * the `input` event, simulating the user typing.\n *\n * @param value Value to be set on the input.\n * @param element Element onto which to set the value.\n */\nexport function typeInElement(value: string, element: HTMLInputElement | HTMLTextAreaElement): void {\n element.focus();\n element.value = value;\n dispatchFakeEvent(element, 'input');\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\n/**\n * Gets a RegExp used to detect an angular wrapped error message.\n * See https://github.com/angular/angular/issues/8348\n */\nexport function wrappedErrorMessage(e: Error): RegExp {\n const escapedMessage = e.message.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n return new RegExp(escapedMessage);\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\ninterface FakeViewportRect {\n left: number;\n top: number;\n width: number;\n height: number;\n bottom: number;\n right: number;\n}\n\ninterface FakeViewportSize {\n width: number;\n height: number;\n}\n\ninterface FakeViewportScrollPosition {\n top: number;\n left: number;\n}\n\n/** @docs-private */\nexport class FakeViewportRuler {\n getViewportRect(): FakeViewportRect {\n return {\n left: 0,\n top: 0,\n width: 1014,\n height: 686,\n bottom: 686,\n right: 1014\n };\n }\n\n getViewportSize(): FakeViewportSize {\n return { width: 1014, height: 686 };\n }\n\n getViewportScrollPosition(): FakeViewportScrollPosition {\n return { top: 0, left: 0 };\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { EventEmitter, Injectable, NgZone } from '@angular/core';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n/**\n * Mock synchronous NgZone implementation that can be used\n * to flush out `onStable` subscriptions in tests.\n *\n * via: https://github.com/angular/angular/blob/master/packages/core/testing/src/ng_zone_mock.ts\n *\n * @docs-private\n */\n@Injectable()\nexport class MockNgZone extends NgZone {\n override onStable: EventEmitter<NzSafeAny> = new EventEmitter(false);\n\n constructor() {\n super({ enableLongStackTrace: false });\n }\n\n override run(fn: Function): NzSafeAny {\n return fn();\n }\n\n override runOutsideAngular(fn: Function): NzSafeAny {\n return fn();\n }\n\n simulateZoneExit(): void {\n this.onStable.emit(null);\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { CommonModule } from '@angular/common';\nimport { DebugElement, NgModule, NO_ERRORS_SCHEMA, Type } from '@angular/core';\nimport { ComponentFixture, TestBed, TestBedStatic } from '@angular/core/testing';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\n\ntype ComponentBedOptions = Pick<NgModule, 'providers' | 'declarations' | 'imports'>;\nexport interface ComponentBed<T> {\n bed: TestBedStatic;\n fixture: ComponentFixture<T>;\n nativeElement: HTMLElement;\n debugElement: DebugElement;\n component: T;\n}\nexport function createComponentBed<T>(\n component: Type<T>,\n options: ComponentBedOptions = {\n providers: [],\n declarations: [],\n imports: []\n }\n): ComponentBed<T> {\n const { imports, declarations, providers } = options;\n const config = {\n imports: [NoopAnimationsModule, CommonModule, ...(imports || [])],\n declarations: [component, ...(declarations || [])],\n schemas: [NO_ERRORS_SCHEMA],\n providers: providers || []\n };\n const bed = TestBed.configureTestingModule(config);\n const fixture = TestBed.createComponent<T>(component);\n fixture.detectChanges();\n return {\n bed,\n fixture,\n nativeElement: fixture.nativeElement,\n debugElement: fixture.debugElement,\n component: fixture.componentInstance\n };\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './dispatch-events';\nexport * from './event-objects';\nexport * from './type-in-element';\nexport * from './wrapped-error-message';\nexport * from './fake-viewport-ruler';\nexport * from './mock-ng-zone';\nexport { createComponentBed as ɵcreateComponentBed, ComponentBed as ɵComponentBed } from './component-bed';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}