151 lines · 4.6 KB
local loader = require('biscuit.loader')

describe('biscuit.loader', function()
  describe('get_extensions_for_filetype', function()
    it('should return extensions for known filetypes', function()
      vim.bo.filetype = 'go'
      local exts, err = loader.get_extensions_for_filetype()
      assert.is_nil(err)
      assert.same({ 'go' }, exts)
    end)

    it('should return multiple extensions for typescript', function()
      vim.bo.filetype = 'typescript'
      local exts, err = loader.get_extensions_for_filetype()
      assert.is_nil(err)
      assert.same({ 'ts', 'tsx' }, exts)
    end)

    it('should return filetype as extension for unknown filetypes', function()
      vim.bo.filetype = 'unknownft'
      local exts, err = loader.get_extensions_for_filetype()
      assert.is_nil(err)
      assert.same({ 'unknownft' }, exts)
    end)

    it('should return error for empty filetype', function()
      vim.bo.filetype = ''
      local exts, err = loader.get_extensions_for_filetype()
      assert.is_nil(exts)
      assert.is_not_nil(err)
      assert.is_true(err:find('No filetype') ~= nil)
    end)
  end)

  describe('tracked_buffers', function()
    before_each(function()
      loader.tracked_buffers = {}
    end)

    it('should start with empty tracked buffers', function()