text: import describe from 'kape'
  import parser, { king } from '@renderking/parser'
  
  describe('Render King Parser', parser, snapshot => {
      snapshot(
          [],
          [''],
          ['a'],
          ['<'],
          ['>'],
          ['asdf'],
          ['<nottag>'],
          ['<tag/>'],
          ['<bar/>'],
          ['<test_underscore/>'],
          ['<not tag/>'],
          ['<multiple/><tags/>'],
          ['<multiple/><tags/>After Strings'],
          ['Before Strings<multiple/><tags/>'],
          ['<multiple/>Between Strings<tags/>'],
          ['<multiple/>With < Less Than<tags/>'],
          ['<nottag>With strings<stillnotag>'],
          ['<tagbefore/><nottag>With<tagbetween/><stillnotag><tagafter/>']
      )
  })
  
  describe('King ltag', king.ltag.parse.bind(king.ltag), snapshot => {
      snapshot('Fail', [[''], ['a'], ['>']])
      snapshot('Pass', [['<']])
  })
  
  describe('King rtag', king.rtag.parse.bind(king.rtag), snapshot => {
      snapshot('Fail', [[''], ['a'], ['<']])
      snapshot('Pass', [['>']])
  })
  
  describe('King close', king.close.parse.bind(king.close), snapshot => {
      snapshot('Fail', [[''], ['a'], ['<'], ['>']])
      snapshot('Pass', [['/']])
  })
  
  describe('King not', king.not.parse.bind(king.not), snapshot => {
      snapshot('Fail', [['<'], ['<after'], [''], ['before<'], ['before<after']])
      snapshot('Pass', [['a'], ['>'], ['/']])
  })
  
  describe(
      'King identifier',
      king.identifier.parse.bind(king.identifier),
      snapshot => {
          snapshot('Fail', [
              ['<'],
              ['<after'],
              [''],
              ['>'],
              ['/'],
              ['before<'],
              ['before<after'],
              ['1start_with_number'],
          ])
          snapshot('Pass', [
              ['a'],
              ['identifier'],
              ['with_underscore'],
              ['include_numb3rs'],
          ])
      }
  )
  
  describe('King empty', king.empty.parse.bind(king.empty), snapshot => {
      snapshot('Fail', [
          ['<'],
          ['<after'],
          [''],
          ['>'],
          ['/'],
          ['before<'],
          ['before<after'],
          ['1start_with_number'],
          ['a'],
          ['identifier'],
          ['with_underscore'],
          ['include_numb3rs'],
          ['<open>'],
          ['</closed>'],
      ])
      snapshot('Pass', [['<empty/>']])
  })
  
  describe('King text', king.text.parse.bind(king.text), snapshot => {
      snapshot('Fail', [
          [''],
          ['<after'],
          ['before<'],
          ['<empty/>'],
          ['before<after'],
          ['<open>'],
          ['</closed>'],
      ])
      snapshot('Pass', [
          ['<'],
          ['>'],
          ['/'],
          ['1start_with_number'],
          ['a'],
          ['identifier'],
          ['with_underscore'],
          ['include_numb3rs'],
          ['Text includes spaces'],
          ['Punctuation. It. Is, Good!!!'],
      ])
  })
  
  describe('King tag', king.tag.parse.bind(king.tag), snapshot => {
      snapshot('Fail', [
          ['<'],
          ['<after'],
          [''],
          ['>'],
          ['/'],
          ['before<'],
          ['before<after'],
          ['1start_with_number'],
          ['a'],
          ['identifier'],
          ['with_underscore'],
          ['include_numb3rs'],
          ['<open>'],
          ['</closed>'],
      ])
      snapshot('Pass', [['<empty/>']])
  })
  
  describe(
      'King text node',
      king.textNode.tryParse.bind(king.textNode),
      snapshot => {
          snapshot(
              ['<'],
              ['>'],
              ['/'],
              ['1start_with_number'],
              ['a'],
              ['identifier'],
              ['with_underscore'],
              ['include_numb3rs'],
              ['Text includes spaces'],
              ['Punctuation. It. Is, Good!!!']
          )
      }
  )
  
  describe(
      'King text node with whitespace',
      king.textNode.tryParse.bind(king.textNode),
      snapshot => {
          snapshot(
              ['a    '],
              ['    a'],
              ['    a    '],
              [
                  `
                  a`,
              ],
              [
                  `
                  a
              `,
              ],
              [
                  `
                  a
                  b
                  `,
              ],
              [
                  `a
                  b`,
              ],
              [
                  `    a
                  b    
                  c
              `,
              ],
              [
                  `
  
                  `,
              ]
          )
      }
  )
  
  describe(
      'King tag node',
      king.tagNode.tryParse.bind(king.tagNode),
      snapshot => {
          snapshot(['<empty/>'], ['<another/>'], ['<with_underscore/>'])
      }
  )
  