Глобальная собственность в JSDOM не установлена ​​в тестировании интеграции (Angular Testing Library)Html

Программисты Html
Ответить Пред. темаСлед. тема
Anonymous
 Глобальная собственность в JSDOM не установлена ​​в тестировании интеграции (Angular Testing Library)

Сообщение Anonymous »

Я не могу настроить свои тесты на интеграцию тестирования с лицензией JSDOM и Angular-Testing-library , но я не знаю, как я могу получить Autoinit () для стрельбы и продолжать получать ошибку, которую тест не может найти hsstaticmethods , что означает Внутренняя функциональность не загружается, и я не могу проверить, фактически ли их компоненты интегрируются с моим приложением!declare global {
interface Window {
HSStaticMethods: IStaticMethods;
}
}

@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'app-component',
templateUrl: './app.component.html',
standalone: true,
})
export class AppComponent implements OnInit {
private readonly router = inject(Router);

public ngOnInit(): void {
this.router.events.subscribe((event: Event) => {
if (event instanceof NavigationEnd) {
setTimeout(() => {
// https://www.preline.co/docs/frameworks-angular.html
window.HSStaticMethods.autoInit();
}, 100);
}
});
}

Я попробовал
  • Добавление Global Global в тест-setup.ts и сам тест
  • Добавление следующего в jest.config.ts :
export default {
moduleNameMapper: {
preline: 'node_modules/preline/dist/preline.js', // added this
}
}

my tsconfig.spec.json :
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node", "@testing-library/jest-dom", "preline"] // added the lib just in case?
},
"files": ["src/test-setup.ts"],
"include": [
"jest.config.ts",
"src/**/*.test.ts",
"src/**/*.spec.ts",
"src/**/*.d.ts"
]
}
< /code>
и вот фактический тест интеграции: < /p>

import { signal } from '@angular/core';
import type { RouterEvent } from '@angular/router';
import { NavigationEnd, Router } from '@angular/router';
import type { IUser } from '@front-and-workspace/projects/grip-clone';
import { render } from '@testing-library/angular';
import { screen } from '@testing-library/dom';
import userEvent from '@testing-library/user-event';
import type { IStaticMethods } from 'preline';
import { BehaviorSubject } from 'rxjs';
import { AppComponent } from './app.component';
import { AuthService } from './auth/auth.service';

// I got desperate and started adding this everywhere :(
declare global {
interface Window {
// eslint-disable-next-line @typescript-eslint/naming-convention
HSStaticMethods: IStaticMethods;
}
}

jest.useFakeTimers(); // Jest timer so I can control when the setTimeout goes off

it('should open the Preline dropdown', async () => {
const user = userEvent.setup();
const mockEvents$ = new BehaviorSubject(null);
const { fixture } = await render(AppComponent, {
providers: [
{
provide: Router,
useValue: {
events: mockEvents$,
routerState: { root: '' },
createUrlTree: jest.fn(),
serializeUrl: jest.fn().mockReturnValue(''),
},
},
],
});

mockEvents$.next(new NavigationEnd(0, '', ''));
jest.runAllTimers(); // ERROR: TypeError: Cannot read properties of undefined (reading 'autoInit')

let themeToggleDropdownContainer = screen.getByTestId(
'front-and-workspace-theme-toggle-dropdown-container',
);

expect(themeToggleDropdownContainer.className).toBe('hs-dropdown');

await user.click(
screen.getByTestId('front-and-workspace-theme-toggle-button'),
);

themeToggleDropdownContainer = screen.getByTestId(
'front-and-workspace-theme-toggle-dropdown-container',
);

fixture.detectChanges();

//Check if drop-down was opened
expect(themeToggleDropdownContainer.className).toBe('hs-dropdown open');
});


Подробнее здесь: https://stackoverflow.com/questions/794 ... ting-libra
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Aspire - Apphost testing testing Заголовок. Заголовок отсутствует
    Anonymous » » в форуме C#
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Предупреждающее сообщение «Не удалось найти основную тему Angular Material» в Angular 3, Angular Material и Angular Mate
    Anonymous » » в форуме CSS
    0 Ответы
    285 Просмотры
    Последнее сообщение Anonymous
  • JSDom не обрабатывает запросы XHR
    Гость » » в форуме Javascript
    0 Ответы
    77 Просмотры
    Последнее сообщение Гость
  • Как вы тестируете делегированных слушателей с помощью JQuery, JSDOM и Jest?
    Anonymous » » в форуме Jquery
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как получить щелчок из JSDOM с jQuery на node.js [закрыто]
    Anonymous » » в форуме Jquery
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Html»