Добавить угол в определение типа окна - PullRequest
0 голосов
/ 28 февраля 2019

Я в процессе установки и запуска Cypress.Я бы хотел, чтобы Cypress напрямую вызывал некоторые из моих функций для проверки их вывода.

Кажется, я не могу получить ссылку на angular хотя бы в моем тесте.Я видел некоторую информацию о добавлении пользовательского «углового» свойства к глобальному объекту окна, но я все еще не могу понять это.

https://github.com/cypress-io/cypress/issues/3068#issuecomment-454109519

Основываясь на примере выше,Как мне создать собственное свойство, чтобы я мог овладеть угловым объектом в Cypress?

1 Ответ

0 голосов
/ 28 февраля 2019

Создайте index.d.ts в cypress/support со следующим (например, чтобы добавить свойство с именем ng):

interface Window {
  ng: {
    probe: typeof import("@angular/platform-browser/src/dom/debug/ng_probe").inspectNativeElement
    // // un-comment if you need these for some reason:
    // ɵcompilerFacade: import("@angular/compiler/src/jit_compiler_facade").CompilerFacadeImpl
    // coreTokens: {
    //   ApplicationRef: import("@angular/core").ApplicationRef
    //   NgZone: import("@angular/core").NgZone
    // }
  }
}

Тогда вы сможете использовать:

cy.get('.some-ng-element').then(($el) => {
  const el = $el[0]  // get the DOM element from the jquery element
  const win = el.ownerDocument.defaultView // get the window from the DOM element
  const component = win.ng.probe(el).componentInstance
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...