local CodeWriter = require 'u.codewriter'

describe('CodeWriter', function()
  it('should write with indentation', function()
    local cw = CodeWriter.new()
    cw:write '{'
    cw:indent(function(cw2) cw2:write 'x: 123' end)
    cw:write '}'

    assert.are.same(cw.lines, { '{', '  x: 123', '}' })
  end)

  it('should keep relative indentation', function()
    local cw = CodeWriter.new()
    cw:write '{'
    cw:indent(function(cw2)
      cw2:write 'x: 123'
      cw2:write '  y: 123'
    end)
    cw:write '}'

    assert.are.same(cw.lines, {
      '{',
      '  x: 123',
      '    y: 123',
      '}',
    })
  end)
end)