тест кармы для приложения Vue - PullRequest
0 голосов
/ 29 августа 2018

Мне нужно протестировать функцию в моем компоненте vue - в зависимости от того, кто щелкнет по строке в таблице, строка должна быть перекрашена в другие цвета с помощью классов начальной загрузки vue.

   setTransactionsSigns() {
    if (this.user.payload.isAdmin) {
      _.each(this.transactions, (transaction) => {
        transaction.signers = transaction.signers || [];

        let countSigners = transaction.signers.filter(s => 
        s.signed).length;
        let countAdmins = transaction.signers.length;
        if (countAdmins >= 1 && countAdmins === countSigners) {
          transaction._rowVariant = 'success';
        } else if (countAdmins >= 1 && countSigners >= 1 && 
          countAdmins > countSigners) {
          transaction._rowVariant = 'warning';
        } else if (countSigners >= 1 && countAdmins < countSigners) {
          transaction._rowVariant = 'info';
        } else {
          transaction.canEdit = true;
        }

        transaction.canEdit = countSigners <= 0;
      });
    }
  }

Я написал свой первый тест с каркасным тестом:

  import Vue from 'vue';
  import Transactions from '@/components/Transactions';

  describe('Transactions.vue', () => {
  it('should get { countSigners: 2, countAdmins: 2 } and set color to 
  green', () => {
  const Constructor = Vue.extend(Transactions);
  const vm = new Constructor().$mount();
  const currentTransactionsSigns = { countSigners: 2, countAdmins: 2 
  };
  const setTransactionsSignsStub = 
  sinon.stub(currentTransactionsSigns.vm, 
  'setTransactionsSigns').returns('currentTransactionsSigns');
  const result = setTransactionsSignsStub;
  expect((result).to.be.true);
  expect(vm.$el.querySelector('.table-wrap').to.have.class('.table- 
  success'));
   });
 });

Кажется, он работает неправильно.

Transactions.vue
    ✗ should get { countSigners: 2, countAdmins: 2 } and set color to green
        Trying to stub property 'setTransactionsSigns' of undefined
        throwOnFalsyObject@/opt/CopyDocuments/fork-fin/admin/node_modules/sinon/pkg/sinon.js:3017:96
        stub@/opt/CopyDocuments/fork-fin/admin/node_modules/sinon/pkg/sinon.js:2849:29
        webpack:///test/unit/specs/Transactions.spec.js:9:48 <- index.js:114772:46

Полагаю, главная проблема с sinon.stub. Кажется, я попытаюсь передать в него неправильные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...