ReferenceError: customElements no está definido

dev_054:

Estoy usando @ @ angular 9.0.7 , @ngneat/[email protected](con la broma ), [email protected]en un proyecto y todo funciona en la aplicación cuando corro ng serveo incluso ng build, pero falla cuando trato de ejecutar un conjunto de pruebas de @Pipeque los usos Inputmask:

@Pipe:

import { Pipe, PipeTransform } from '@angular/core';

import Inputmask from 'inputmask';

@Pipe({
  name: 'appSomePipe',
})
export class SomePipe implements PipeTransform {
  transform(value: string): string {
    return Inputmask.format(value, {
      jitMasking: true,
      mask: '1111-1',
    });
  }
}

@Spec:

import { createPipeFactory, SpectatorPipe } from '@ngneat/spectator/jest';

import { SomePipe } from './some.pipe';

describe('SomePipe', () => {
  let spectator: SpectatorPipe<SomePipe>;
  const createPipe = createPipeFactory(SomePipe);

  it('test', () => {
    spectator = createPipe(`{{ '11111' | appSome }}`);
    expect(spectator.element).toHaveText('1111-1');
  });
});

Cuando corro ng test, se muestra:

ReferenceError: customElements no está definido

  2 | 
> 3 | import Inputmask from 'inputmask';

PS : Este error solo aparece por angular 9, en el angular 8 se ha superado con éxito todas las pruebas.

Guerrico P:

Una búsqueda rápida en inputmaskespectáculos de repositorio que se utiliza customElements, que es una característica implementada por los navegadores modernos con el fin de crear componentes web nativos (sin un marco).

Al mirar la documentación broma podemos ver que el valor por defecto testEnvironmentes jsdom , que es una implementación del DOM que se ejecuta sin un navegador. Esta biblioteca implementa elementos personalizados desde la versión 16.2.0 y esta versión es bastante reciente, y sin embargo no es utilizado por broma ( la última versión de la broma de usos jsdom v15.1.1 ).

Por lo que sólo tiene que esperar a broma para actualizar la dependencia jsdom, y luego actualizar su proyecto para utilizar la última versión de broma.

Otra opción: se puede usar broma en navegador que se ejecuta broma en un navegador sin interfaz gráfica basada en titiritero.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=406205&siteId=1
Recomendado
Clasificación