• Куда необходимо добавить sitemap.xml и robots.txt?

    @Esm322 Автор вопроса
    Если кому-то понадобится, добавил в директорию frontend sitemap.xml и robots.txt. Импортировал в main.js эти файлы и добавил в webpack rules:
    {
      test: /\.xml/,
      type: 'asset/resource',
      generator: {
        filename: 'sitemap.xml',
      },
    },
    {
      test: /\.txt/,
      type: 'asset/resource',
      generator: {
        filename: 'robots.txt',
      },
    }
    Ответ написан
  • Почему не срабатывает post запрос при отправки формы через nodemailer?

    @Esm322 Автор вопроса
    Проблема решилась добавлением
    tls: {
        rejectUnauthorized: false
    }

    в тело transporter.createTransport({}):
    const transporter = nodemailer.createTransport({
          host: 'smtp.mail.ru',
          port: 465,
          secure: true,
          auth: {
            user: 'почта',
            pass: 'пароль',
          },
          tls: {
            rejectUnauthorized: false
          }
        })


    Примечание:
    Если не отключить антивирус, то в письме данные будут приходить в виде 'undefined'
    Ответ написан
    Комментировать
  • Как протестировать vue компонент на открытие модального окна через vitest?

    @Esm322 Автор вопроса
    Ошибка заключалась в shallowMount. Вместо shallowMount нужно было использовать mount, т.к shallowMount удаляет из родительского компонента дочерние компоненты и подставляет вместо них заглушки. Т.е тест должен был выглядеть так:
    import { mount } from '@vue/test-utils'
    
    beforeEach(() => {
        wrapper = mount(MainView, {
          global: {
            plugins: [
              createTestingPinia({
                createSpy: vi.fn,
                initialState: {
                  client: {
                    clientsData: [client]
                  }
                }
              })
            ]
          }
        })
      })
    
      it('openning modal window add', async () => {
        expect(wrapper.find('.modal').exists()).toBe(false)
        await wrapper.find('#add').trigger('click')
        expect(wrapper.find('.modal').exists()).toBe(true)
      })
    })
    Ответ написан
    Комментировать
  • Как исправить ошибки TypeError и getActivePinia() при тестировании в vitest?

    @Esm322 Автор вопроса
    Если кому-то понадобится. Для того, чтобы избавиться от ошибки Pinia, я добавил createSpy: vi.fn. А для ошибки TypeError, я указал начальное состояние с точной структурой объекта, который используется в composables для рендера:
    import { describe, it, expect, beforeEach, vi } from 'vitest'
    
    import { shallowMount } from '@vue/test-utils'
    
    import { createTestingPinia } from '@pinia/testing'
    
    import MainView from '@/views/MainView.vue'
    
    describe('MainView.vue', () => {
      let wrapper: any
    
      const client = {
        id: 1,
        firstName: 'test',
        secondName: 'testov',
        thirdName: 'testovich',
        fullName: 'testov test testovich',
        date: {
          newDate: new Date(),
          nowDate: Date.now()
        },
        edit: {
          newEdit: new Date(),
          nowEdit: Date.now()
        },
        contacts: [
          {
            block: {
              name: 'component'
            },
            selectValue: '',
            inputValue: ''
          }
        ],
        newdCreateDate: 'today',
        newEditDate: 'today'
      }
    
      beforeEach(() => {
        wrapper = shallowMount(MainView, {
          global: {
            plugins: [
              createTestingPinia({
                createSpy: vi.fn,
                initialState: {
                  client: {
                    clientsData: [client]
                  }
                }
              })
            ]
          }
        })
      })
    
      it('renders properly', () => {
        expect(wrapper.find('.modal').exists()).toBe(false)
      })
    })
    Ответ написан
    Комментировать