Build a Pokémon Search App Project - Build a Pokémon Search App

Tell us what’s happening:

My app is working properly, but when I run the tests, this keeps showing “the type element should contain a single inner element…”.
But it does! Why is it wrong?

Your code so far

/* file: script.js */



### Your browser information:

User Agent is: <code>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.51</code>

### Challenge Information:
Build a Pokémon Search App Project - Build a Pokémon Search App
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/build-a-pokemon-search-app-project/build-a-pokemon-search-app

Hello @bn057979!

Can you explain why you think the type element contains a single inner element? There is no code to view in your initial submission.

fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon')
  .then((res) => res.json())
  .then(data => {
 nombresPokemon=data;
 nombresPokemon2=data.results;
  })
  .catch(error => console.error('Pokémon not found', error));

const buscar = async (query) => {
  let selected = {};
  let found = false;
  let id = parseInt(query);

  if (!isNaN(id) && id > 0 && id <= nombresPokemon2.length) {
    const { name, url } = nombresPokemon2[id - 1];
    selected.name = name;
    selected.url = url;
    nombre.innerHTML = `${name.toUpperCase()}`;
    idPokemon.innerHTML = `${id}`;
    imagenPokemon.src = `https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/${id}.png`;
    found = true;
    
 const response = await fetch(url);
const pokemonData = await response.json();

 const {weight, height, types, stats}=pokemonData;
 
    selected.weight = weight;
    selected.height = height;
    selected.types=types;
    selected.stats=stats;

    pesoPokemon.innerHTML = `${weight}`;
    alturaPokemon.innerHTML = `${height}`;
    tipoPokemon.innerHTML = types.map(type => type.type.name).join(', ').toUpperCase();

    let hpStat = stats.find(stat => stat.stat.name === 'hp');
    let hpBaseStat=hpStat.base_stat;
    let attackStat = stats.find(stat => stat.stat.name === 'attack');
    let attackBaseStat=attackStat.base_stat;
    let defenseStat = stats.find(stat => stat.stat.name === 'defense');
    let defenseBaseStat=defenseStat.base_stat;
    let sattackStat = stats.find(stat => stat.stat.name === 'special-attack');
    let sattackBaseStat=sattackStat.base_stat;
    let sdefenseStat = stats.find(stat => stat.stat.name === 'special-defense');
    let sdefenseBaseStat=sdefenseStat.base_stat;
    let speedStat = stats.find(stat => stat.stat.name === 'speed');
    let speedBaseStat=speedStat.base_stat;


   hp.textContent=hpBaseStat;
   attack.textContent=attackBaseStat;
   defense.textContent=defenseBaseStat; 
   sattack.textContent=sattackBaseStat;
   sdefense.textContent=sdefenseBaseStat;
   speed.textContent=speedBaseStat;
}

  if (!found) {
    const pokemon = nombresPokemon2.find(p => p.name.toLowerCase() === query.toLowerCase());
    if (pokemon) {
      const index = nombresPokemon2.indexOf(pokemon);
      selected.name = pokemon.name;
      selected.url = pokemon.url;
      nombre.innerHTML = `${pokemon.name.toUpperCase()}`;
      idPokemon.innerHTML = `${index + 1}`;
      imagenPokemon.src = `https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/${index + 1}.png`;
      found = true;

   const response = await fetch(pokemon.url);
      const pokemonData = await response.json();
      const {weight, height, types, stats}=pokemonData;
 
    selected.weight = weight;
    selected.height = height;
    selected.types=types;
    selected.stats=stats;

    pesoPokemon.innerHTML = `${weight}`;
    alturaPokemon.innerHTML = `${height}`;
    tipoPokemon.innerHTML = types.map(type => type.type.name).join(', ').toUpperCase();

    let hpStat = stats.find(stat => stat.stat.name === 'hp');
    let hpBaseStat=hpStat.base_stat;
    let attackStat = stats.find(stat => stat.stat.name === 'attack');
    let attackBaseStat=attackStat.base_stat;
    let defenseStat = stats.find(stat => stat.stat.name === 'defense');
    let defenseBaseStat=defenseStat.base_stat;
    let sattackStat = stats.find(stat => stat.stat.name === 'special-attack');
    let sattackBaseStat=sattackStat.base_stat;
    let sdefenseStat = stats.find(stat => stat.stat.name === 'special-defense');
    let sdefenseBaseStat=sdefenseStat.base_stat;
    let speedStat = stats.find(stat => stat.stat.name === 'speed');
    let speedBaseStat=speedStat.base_stat;


   hp.textContent=hpBaseStat;
   attack.textContent=attackBaseStat;
   defense.textContent=defenseBaseStat; 
   sattack.textContent=sattackBaseStat;
   sdefense.textContent=sdefenseBaseStat;
   speed.textContent=speedBaseStat;
      }
  }

  if (!found) {
    alert("Pokémon not found")
  }
};


button.addEventListener("click", () => {
  const query = input.value.trim();
  buscar(query);
});

clear.addEventListener("click",()=>{
  hp.textContent="";
   attack.textContent="";
   defense.textContent=""; 
   sattack.textContent="";
   sdefense.textContent="";
   speed.textContent="";
  pesoPokemon.innerHTML=""; 
  alturaPokemon.innerHTML="";
  tipoPokemon.innerHTML=""; 
  nombre.innerHTML= "" ;
  idPokemon.innerHTML="";
  imagenPokemon.src="";
  input.value="";
})

I’va just pasted the code.
Thank you very much for helping!