Skip to content

Instantly share code, notes, and snippets.

@artemsites
Last active March 15, 2024 10:37
Show Gist options
  • Save artemsites/d41267ffbe4c3c68e614e1f0439859b7 to your computer and use it in GitHub Desktop.
Save artemsites/d41267ffbe4c3c68e614e1f0439859b7 to your computer and use it in GitHub Desktop.
import { mount } from "@vue/test-utils"
import { describe, expect, test, it } from 'vitest'

import InputSelect from './input-select.vue'

describe('InputSelect', () => {
  it('renders properly', async () => {

    const wrapper = mount(InputSelect, {
      props: { 
        options:[ 
            { id: 0, name: 'Согласовать с оператором', default: true }, 
            { id: 1, name: 'Выбрать первый день' }, 
        ] 
      },
    })

    expect(wrapper.exists()).toBe(true)
  })
})



//
expect(wrapper.find('button').isVisible()).toBe(true)
await wrapper.setData({ loggedIn: true })
await wrapper.vm.$nextTick()

expect(wrapper.html()).toContain('<span>0</span>')
expect(wrapper.text()).toContain('Times clicked: 0')


const randomNumber = parseInt(wrapper.find('span').text())
expect(randomNumber).toBeGreaterThanOrEqual(200)
expect(randomNumber).toBeLessThanOrEqual(300)

const input = wrapper.find('input[type="text"]')
input.setValue('Adam Jahr')

wrapper.trigger('submit')
wrapper.trigger('click')

const formSubmittedCalls = wrapper.emitted('formSubmitted')
expect(formSubmittedCalls).toHaveLength(1)

const expectedPayload = { name: 'Adam Jahr' }
expect(wrapper.emitted('formSubmitted')[0][0]).toMatchObject(expectedPayload)

expect(wrapper.exists()).toBe(true)

wrapper.vm.$data

await wrapper.setProps({ programs: programs })
await wrapper.setData({ foo: 'bar' })
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment