resources/assets/js/services/authService.spec.ts

Summary

Maintainability
A
1 hr
Test Coverage
import UnitTestCase from '@/__tests__/UnitTestCase'
import { localStorageService } from '@/services/localStorageService'
import { expect, it } from 'vitest'
import { authService } from './authService'

new class extends UnitTestCase {
  protected test () {
    it('gets the token', () => {
      const mock = this.mock(localStorageService, 'get')
      authService.getApiToken()
      expect(mock).toHaveBeenCalledWith('api-token')
    })

    it.each([['foo', true], [null, false]])('checks if the token exists', (token, exists) => {
      this.mock(localStorageService, 'get', token)
      expect(authService.hasApiToken()).toBe(exists)
    })

    it('sets the token', () => {
      const mock = this.mock(localStorageService, 'set')
      authService.setApiToken('foo')
      expect(mock).toHaveBeenCalledWith('api-token', 'foo')
    })

    it('destroys the token', () => {
      const mock = this.mock(localStorageService, 'remove')
      authService.destroy()
      expect(mock).toHaveBeenCalledWith('api-token')
    })
  }
}