Тринадцатая программа "Мороженое. Возвращение"

Доброго времени суток. Решил я, значит программу, и вроде как все работает, да вот беда. Система не принимает. Пишет, что тест провален раз за разом. А мой человеческий глаз, говорит, что все нормик
В чем же проблема, может подскажет кто, пожалуйста
Вот код

Кошмар на улице вязов
var cardsData = [
  {
    inStock: true,
    imgUrl: 'gllacy/choco.jpg',
    text: 'Сливочно-кофейное с кусочками шоколада',
    price: 310,
    isHit: true,
    specialOffer: 'Двойная порция сиропа бесплатно!'
  },
  {
    inStock: false,
    imgUrl: 'gllacy/lemon.jpg',
    text: 'Сливочно-лимонное с карамельной присыпкой',
    price: 125,
    isHit: false
  },
  {
    inStock: true,
    imgUrl: 'gllacy/cowberry.jpg',
    text: 'Сливочное с брусничным джемом',
    price: 170,
    isHit: false
  },
  {
    inStock: true,
    imgUrl: 'gllacy/cookie.jpg',
    text: 'Сливочное с кусочками печенья',
    price: 250,
    isHit: false
  },
  {
    inStock: true,
    imgUrl: 'gllacy/creme-brulee.jpg',
    text: 'Сливочное крем-брюле',
    price: 190,
    isHit: false
  }
];
var makeElement = function (tagName, className, text) {
  var element = document.createElement(tagName);
  element.classList.add(className);
  if (text) {
    element.textContent = text;
  }
  return element;
};

var renderCards = function (product) {
  var listItem = makeElement('li', 'good');

  var title = makeElement('h2', 'good__description', product.text);
  listItem.appendChild(title);

  var picture = makeElement('img', 'good__image');
  picture.src = product.imgUrl;
  picture.alt = product.text;
  listItem.appendChild(picture);

  var price = makeElement('p', 'good__price', product.price + ' ₽/кг');
  listItem.appendChild(price);

  var availabilityClass = 'good--available';
  if (!product.inStock) {
    availabilityClass = 'good--unavailable';
  }
  listItem.classList.add(availabilityClass);

  if (product.isHit) {
    listItem.classList.add('good--hit');
    var specialPrice = makeElement('p', 'product__special-price', product.specialPrice);
    listItem.appendChild(specialPrice);
    var specialOffer = makeElement('p', 'good__special-offer', product.specialOffer);
    listItem.appendChild(specialOffer);
    
  }

  return listItem;
};

var goodsList = document.querySelector('.goods');

for (var i = 0; i < cardsData.length; i++) {
  var cardItem = renderCards(cardsData[i]);
  goodsList.appendChild(cardItem);  
}
1 лайк

if (product.isHit) {
listItem.classList.add(‘good–hit’);
var specialPrice = makeElement(‘p’, ‘product__special-price’, product.specialPrice);
listItem.appendChild(specialPrice);
var specialOffer = makeElement(‘p’, ‘good__special-offer’, product.specialOffer);
listItem.appendChild(specialOffer);

Может убрать specialPrice его вроде нет в массиве данных

то же самое, код вырисовывает требуемую картинку. консоль отвечает, что тест не пройден.

var cardsData = [
  {
    inStock: true,
    imgUrl: 'gllacy/choco.jpg',
    text: 'Сливочно-кофейное с кусочками шоколада',
    price: 310,
    isHit: true,
    specialOffer: 'Двойная порция сиропа бесплатно!'
  },
  {
    inStock: false,
    imgUrl: 'gllacy/lemon.jpg',
    text: 'Сливочно-лимонное с карамельной присыпкой',
    price: 125,
    isHit: false
  },
  {
    inStock: true,
    imgUrl: 'gllacy/cowberry.jpg',
    text: 'Сливочное с брусничным джемом',
    price: 170,
    isHit: false
  },
  {
    inStock: true,
    imgUrl: 'gllacy/cookie.jpg',
    text: 'Сливочное с кусочками печенья',
    price: 250,
    isHit: false
  },
  {
    inStock: true,
    imgUrl: 'gllacy/creme-brulee.jpg',
    text: 'Сливочное крем-брюле',
    price: 190,
    isHit: false
  }
];

let cardList = document.querySelector('.goods');

let createCard = function (product) {
  let listItem = document.createElement('li');
  listItem.classList.add('good');
  let availabilityClass = 'good--available';
  if (!product.inStock) {
    availabilityClass = 'good--unavailable';
  }  
  listItem.classList.add(availabilityClass);
  if (product.isHit) {
    listItem.classList.add('good--hit');
  }

  
  
  
  let title = document.createElement('h2');
  title.classList.add('good__description');
  title.textContent = product.text;
  listItem.appendChild(title);
  
  let picture = document.createElement('img');
  picture.classList.add('good__image');
  picture.src = product.imgUrl;
  product.alt = title.textContent;
  listItem.appendChild(picture);
  
  let p = document.createElement('p');
  p.classList.add('good__price');
  p.textContent = product.price +'₽/кг';
  listItem.appendChild(p);
  
  if (product.specialOffer) {
  let pSpecialOffer = document.createElement('p');
  pSpecialOffer.textContent = product.specialOffer;
  pSpecialOffer.classList.add('good__special-offer');
  listItem.appendChild(pSpecialOffer);    
  }
  
  return listItem; 
}

let renderCards = function (products) {
  for (let i=0;i <= products.length-1 ;i++) {
    let card = createCard(products[i]);
    cardList.appendChild(card);    
  };
}
renderCards(cardsData);

Перепроверьте через консоль, правильно ли у вас расположены элементы. Должна быть такая последовательность

<li class="good">
    <h2 class="good__description">Сливочно-кофейное с кусочками шоколада</h2>
    <img class="good__image" src="gllacy/choco.jpg" alt="Сливочно-кофейное с кусочками шоколада">
    <p class="good__price">110₽/кг</p>
    <p class="good__special-offer">Двойная порция сиропа бесплатно!</p>
</li>

У вас у картинки не отображается alt, допущена ошибка в этой строке

У вас это лишнее.

А тут лишний пробел перед ₽