warn.spec.js 1.22 KB
import { warn } from './warn'

describe('utils/warn', () => {
  const dummyWarning = 'This is a dummy warning.'
  const dummySource = 'DummyComponent'

  let originalProcess

  beforeAll(() => {
    jest.spyOn(console, 'warn').mockImplementation(() => {})
    originalProcess = global.process
  })

  afterEach(() => {
    console.warn.mockClear()
    global.process = originalProcess
  })

  describe('with "BOOTSTRAP_VUE_NO_WARN" environment variable set', () => {
    beforeEach(() => {
      global.process = {
        env: {
          BOOTSTRAP_VUE_NO_WARN: true
        }
      }
    })

    it('does not call "console.warn()"', () => {
      warn(dummyWarning)

      expect(console.warn).not.toHaveBeenCalled()
    })
  })

  describe('without process object', () => {
    beforeEach(() => {
      delete global.process
    })

    it('calls "console.warn()" with warning', () => {
      warn(dummyWarning)

      expect(console.warn).toHaveBeenCalledWith(`[BootstrapVue warn]: ${dummyWarning}`)
    })

    it('calls "console.warn()" with warning and source', () => {
      warn(dummyWarning, dummySource)

      expect(console.warn).toHaveBeenCalledWith(
        `[BootstrapVue warn]: ${dummySource} - ${dummyWarning}`
      )
    })
  })
})