Сгенерированный моментальный снимок с вышедшими из строя компонентами в разных средах - PullRequest
0 голосов
/ 05 июля 2018

Я работаю над проектом с использованием styled-компонентов и jest с тестированием моментальных снимков для начальных визуализаций моих компонентов React. Я могу запустить эти тесты локально, что создает снимки, как и ожидалось. Все тестовые файлы вместе с созданными снимками возвращаются в систему контроля версий. Позже, когда выполняются шаги CI, тесты возвращаются с ошибками из-за неупорядоченных имен классов с идентичным содержимым.

Фотоснимок:

exports[`TransparentListItem should render 1`] = `
.c0 {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.c1 {
  margin-left: 20px;
  color: #8288A0 !important;
}

.c2 {
  font-weight: 600;
  font-size: 16px;
  line-height: 22px;
  -webkit-letter-spacing: 0.3px;
  -moz-letter-spacing: 0.3px;
  -ms-letter-spacing: 0.3px;
  letter-spacing: 0.3px;
  font-family: 'Nunito Sans',sans-serif;
  font-weight: 500;
  color: #44485B;
  margin-bottom: 10px;
  margin-top: 10px;
}

<div
  className="c0"
>
  <h4
    className="c1 c2"
    size={4}
  />
</div>
`;

Тестовый вывод:

 FAIL  src/components/TransparentListItem/TransparentListItem.test.js (14.986s)
  ● TransparentListItem › should render

    expect(value).toMatchSnapshot()

    Received value does not match stored snapshot 1.

    - Snapshot
    + Received

    @@ -1,5 +1,20 @@
    + .c2 {
    +   font-weight: 600;
    +   font-size: 16px;
    +   line-height: 22px;
    +   -webkit-letter-spacing: 0.3px;
    +   -moz-letter-spacing: 0.3px;
    +   -ms-letter-spacing: 0.3px;
    +   letter-spacing: 0.3px;
    +   font-family: 'Nunito Sans',sans-serif;
    +   font-weight: 500;
    +   color: #44485B;
    +   margin-bottom: 10px;
    +   margin-top: 10px;
    + }
    + 
      .c0 {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
    @@ -12,25 +27,10 @@
      .c1 {
        margin-left: 20px;
        color: #8288A0 !important;
      }

    - .c2 {
    -   font-weight: 600;
    -   font-size: 16px;
    -   line-height: 22px;
    -   -webkit-letter-spacing: 0.3px;
    -   -moz-letter-spacing: 0.3px;
    -   -ms-letter-spacing: 0.3px;
    -   letter-spacing: 0.3px;
    -   font-family: 'Nunito Sans',sans-serif;
    -   font-weight: 500;
    -   color: #44485B;
    -   margin-bottom: 10px;
    -   margin-top: 10px;
    - }
    - 
      <div
        className="c0"
      >
        <h4
          className="c1 c2"

       7 |   it('should render', () => {
       8 |     const tree = renderer.create(<TransparentListItem />).toJSON();
    >  9 |     expect(tree).toMatchSnapshot();
      10 |   });
      11 | });
      12 | 

      at Object.<anonymous> (src/components/TransparentListItem/TransparentListItem.test.js:9:18)

В этом случае c2 сохраняется под c1, но при запуске теста оно отображается выше c0.

Любое понимание будет оценено.

...