Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro ao executar o karma

Erro ao executar o Karma na execução do primeiro teste do curso, aula 09.

(node:24924) [DEP0148] DeprecationWarning: Use of deprecated folder mapping "./" in the "exports" field module resolution of the package at C:\Workspace\jasmine\node_modules\tslib\package.json. Update this package.json to use a subpath pattern like "./*". (Use node --trace-deprecation ... to show where the warning was created)

(node:24924) [DEP0148] DeprecationWarning: Use of deprecated folder mapping "./" in the "exports" field module resolution of the package at C:\Workspace\jasmine\node_modules\css-loader\node_modules\postcss\package.json. Update this package.json to use a subpath pattern like "./*".

////////////////////////////////////////////////////////////////////////////////////////// //Arquivo: unique-id.service.spec.ts

import { UniqueIdService } from "./unique-id.service";

describe('UniqueIdService', () => {

it('#generatedUniqueIdWithPrefix', () => {![Insira aqui a descrição dessa imagem para ajudar na acessibilidade](https://cdn1.gnarususercontent.com.br/1/1316526/105dcf8d-f65f-4de6-86fa-7dca4325e7d9.png)  
    const service = new UniqueIdService();
    const id = service.generatedUniqueIdPrefix('app');
    expect(id).toContain('app-');
});

});

////////////////////////////////////////////////////////////////////////////////////////// //Arquivo: unique-id.service.ts

import { Injectable } from "@angular/core"; import { v4 as uuidv4} from 'uuid';

@Injectable() export class UniqueIdService {

private numberOfGeneratedIds = 0;

public generatedUniqueIdPrefix(prefix: string): string{

    if (!prefix){
        throw Error('Prefix can not be empty');            
    }

    const uniqueId = this.generateUniqueId();
    this.numberOfGeneratedIds++;
    return '${prefix}-${uniqueId}';
}

public getNumberOfGeneratedIds(): number{
    return this.numberOfGeneratedIds;
}

private generateUniqueId(): string{
    return uuidv4;
}

}

1 resposta
solução!

Oi Charlles, tudo bem?

Vou te ajudar a entender o problema e encontrar uma solução.

O erro que você mencionou está relacionado a uma advertência de depreciação (DeprecationWarning) na resolução de módulos do TypeScript (module resolution). A mensagem de erro específica que o uso do mapeamento de pasta deprecado "./" foi encontrado nos arquivos package.json dos pacotes tslib e css-loader.

Essas advertências estão sugerindo que você atualize os arquivos package.json para utilizar um padrão de subcaminho (subpath pattern) como "./*" em vez do mapeamento de pasta "./". Isso ocorre porque o uso do mapeamento de pasta "./" está sendo descontinuado e pode não ser suportado em versões futuras.

Para resolver esse problema, você precisa localizar os arquivos package.json dos pacotes tslib e css-loader e fazer as alterações necessárias.

Vamos começar com o pacote tslib. Acesse o arquivo package.json do diretório node_modules/tslib e procure pela entrada "exports" que contém o mapeamento de pasta "./". Atualize essa entrada para utilizar o padrão de subcaminho "./*". O trecho de código atualizado ficará assim:

"exports": {
  "./*": "./"
}

Repita o mesmo procedimento para o pacote css-loader. Acesse o arquivo package.json do diretório node_modules/css-loader e atualize a entrada "exports" da mesma forma, substituindo o mapeamento de pasta "./" pelo padrão de subcaminho "./*".

Depois de fazer essas alterações nos arquivos package.json, tente executar novamente o Karma e verifique se as advertências foram resolvidas.

Além disso, analisando os códigos que você compartilhou, percebi que há um erro de sintaxe no método generatedUniqueIdPrefix da classe UniqueIdService. A linha onde você retorna o valor deve usar o template string com crase (`), em vez das aspas simples ('). O trecho de código corrigido fica assim:

return `${prefix}-${uniqueId}`;

Certifique-se de corrigir essa linha para evitar problemas futuros.

Espero que essas informações tenham sido úteis para resolver o problema que você encontrou ao executar o Karma e o primeiro teste do curso.

Um abraço e bons estudos.