local Renderer = require 'u.renderer' --- @param markup string local function parse(markup) -- call private method: return (Renderer --[[@as any]])._parse_markup(markup) end describe('Renderer', function() it('_parse_markup: empty string', function() local nodes = parse [[]] assert.are.same({}, nodes) end) it('_parse_markup: only string', function() local nodes = parse [[The quick brown fox jumps over the lazy dog.]] assert.are.same({ { kind = 'text', value = 'The quick brown fox jumps over the lazy dog.' }, }, nodes) end) it('_parse_markup: <', function() local nodes = parse [[<t value="bleh" />]] assert.are.same({ { kind = 'text', value = '' }, }, nodes) end) it('_parse_markup: empty tag', function() local nodes = parse [[]] assert.are.same({ { kind = 'tag', name = '', attributes = {} } }, nodes) end) it('_parse_markup: tag', function() local nodes = parse [[]] assert.are.same({ { kind = 'tag', name = 't', attributes = { value = 'Hello', }, }, }, nodes) end) it('_parse_markup: attributes with quotes', function() local nodes = parse [[]] assert.are.same({ { kind = 'tag', name = 't', attributes = { value = 'Hello "there"', }, }, }, nodes) end) end)