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

Problema Unique-id.service

Olá! Fazendo igual o professor, aparece que os testes não estão completos. Já copiei e colei do arquivo baixado no final da aula e nada. Segue o print do erro. Alguém tmb já teve esse problema? Insira aqui a descrição dessa imagem para ajudar na acessibilidadeMeu código do service:

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

describe(UniqueIdService.name, () => {

let service: UniqueIdService = null;

beforeEach(() => {
  service = new UniqueIdService();
});

it(`#${UniqueIdService.prototype.getNumberOfGeneratedUniqueIds.name}
  should return the number of generatedIds when called`, () => {
  service.generateUniqueIdWithPrefix('app');
  service.generateUniqueIdWithPrefix('app');
  expect(service.getNumberOfGeneratedUniqueIds()).toBe(2);
});

it(`#${UniqueIdService.prototype.generateUniqueIdWithPrefix.name}
  should generate id when called with prefix`, () => {
  const id = service.generateUniqueIdWithPrefix('app');
  expect(id.startsWith('app-')).toBeTrue();
});

it(`#${UniqueIdService.prototype.generateUniqueIdWithPrefix.name}
  should not generate duplicate IDs when called multiple times`, () => {
  const ids = new Set();
  for (let i = 0; i < 50; i++) {
    ids.add(service.generateUniqueIdWithPrefix('app'));
  }
  expect(ids.size).toBe(50);
});

it(`#${UniqueIdService.prototype.getNumberOfGeneratedUniqueIds.name} 
    should throw when called with empty`, () => {
    const emptyValues = [null, undefined, '', '0', '2']
    emptyValues.forEach(emptyValues =>{
        expect(() => service.generateUniqueIdWithPrefix(emptyValues))
        .withContext(`Empty value: ${emptyValues}`)
        .toThrow();
    });
});//teste só para exceção

});

1 resposta
solução!

Oi Nathan, tudo bem?

Vi que você finalizou o curso, você ainda está com dúvidas? Tentarei ajudar com as informações que mandou:

Analisando o código que você compartilhou, parece que o erro está ocorrendo quando você executa os testes e o resultado indica que os testes não estão completos. Esse tipo de situação pode ocorrer por diferentes motivos. Vou tentar te ajudar a identificar e resolver o problema.

Primeiramente, vamos verificar se o código do serviço UniqueId está corretamente implementado. De acordo com o código fornecido, ele possui três métodos principais: getNumberOfGeneratedUniqueIds, generateUniqueIdWithPrefix e getNumberOfGeneratedUniqueIds. Esses métodos são responsáveis por gerar IDs únicos com prefixo, contar o número de IDs gerados e garantir que não sejam gerados IDs duplicados.

É importante garantir que o código do serviço UniqueId esteja corretamente implementado para que os testes possam ser executados com sucesso. Certifique-se de que o serviço esteja importado corretamente e que todas as dependências estejam sendo resolvidas adequadamente.

Além disso, é fundamental que os testes estejam configurados corretamente. Verifique se você está importando as bibliotecas necessárias, como o UniqueIdService e o describe, e se está utilizando o beforeEach para inicializar o serviço antes de cada teste.

Agora, vamos analisar os testes individualmente. No primeiro teste, getNumberOfGeneratedUniqueIds, você chama o método generateUniqueIdWithPrefix duas vezes e, em seguida, verifica se o número de IDs gerados é igual a 2. Verifique se esse teste está retornando o resultado esperado e se não há erros na implementação do método getNumberOfGeneratedUniqueIds.

No segundo teste, generateUniqueIdWithPrefix, você gera um ID com um prefixo e verifica se ele começa com esse prefixo. Novamente, verifique se o resultado esperado é retornado e se não há erros na implementação do método generateUniqueIdWithPrefix.

No terceiro teste, generateUniqueIdWithPrefix, você verifica se o serviço não está gerando IDs duplicados ao chamar o método várias vezes. Você cria um conjunto (Set) e adiciona os IDs gerados a esse conjunto. No final, verifica se o tamanho do conjunto é igual a 50. Certifique-se de que esse teste está funcionando corretamente e que não há problemas na implementação do método generateUniqueIdWithPrefix.

No último teste, getNumberOfGeneratedUniqueIds, você testa se o serviço está lançando uma exceção quando chamado com um valor vazio. Você utiliza um conjunto de valores vazios e verifica se uma exceção é lançada para cada um deles. Verifique se todas as exceções esperadas estão sendo lançadas corretamente.

Espero ter te ajudado.

Um abraço e bons estudos.