test(e2e): add e2e test for markdown example (#533)
This commit is contained in:
		
							parent
							
								
									818bf17cb7
								
							
						
					
					
						commit
						532d3b68ab
					
				@ -30,7 +30,11 @@ export function setupPuppeteer() {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  async function value(selector: string) {
 | 
					  async function value(selector: string) {
 | 
				
			||||||
    return await page.$eval(selector, (node: any) => node.value)
 | 
					    return await page.$eval(selector, (node: HTMLInputElement) => node.value)
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  async function html(selector: string) {
 | 
				
			||||||
 | 
					    return await page.$eval(selector, node => node.innerHTML)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  async function classList(selector: string) {
 | 
					  async function classList(selector: string) {
 | 
				
			||||||
@ -49,7 +53,7 @@ export function setupPuppeteer() {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  async function isChecked(selector: string) {
 | 
					  async function isChecked(selector: string) {
 | 
				
			||||||
    return await page.$eval(selector, (node: any) => node.checked)
 | 
					    return await page.$eval(selector, (node: HTMLInputElement) => node.checked)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  async function isFocused(selector: string) {
 | 
					  async function isFocused(selector: string) {
 | 
				
			||||||
@ -58,13 +62,16 @@ export function setupPuppeteer() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  async function enterValue(selector: string, value: string) {
 | 
					  async function enterValue(selector: string, value: string) {
 | 
				
			||||||
    const el = (await page.$(selector))!
 | 
					    const el = (await page.$(selector))!
 | 
				
			||||||
    await el.evaluate((node: any) => (node.value = ''))
 | 
					    await el.evaluate((node: HTMLInputElement) => (node.value = ''))
 | 
				
			||||||
    await el.type(value)
 | 
					    await el.type(value)
 | 
				
			||||||
    await el.press('Enter')
 | 
					    await el.press('Enter')
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  async function clearValue(selector: string) {
 | 
					  async function clearValue(selector: string) {
 | 
				
			||||||
    return await page.$eval(selector, (node: any) => (node.value = ''))
 | 
					    return await page.$eval(
 | 
				
			||||||
 | 
					      selector,
 | 
				
			||||||
 | 
					      (node: HTMLInputElement) => (node.value = '')
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return {
 | 
					  return {
 | 
				
			||||||
@ -73,6 +80,7 @@ export function setupPuppeteer() {
 | 
				
			|||||||
    count,
 | 
					    count,
 | 
				
			||||||
    text,
 | 
					    text,
 | 
				
			||||||
    value,
 | 
					    value,
 | 
				
			||||||
 | 
					    html,
 | 
				
			||||||
    classList,
 | 
					    classList,
 | 
				
			||||||
    children,
 | 
					    children,
 | 
				
			||||||
    isVisible,
 | 
					    isVisible,
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										36
									
								
								packages/vue/examples/__tests__/markdown.spec.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								packages/vue/examples/__tests__/markdown.spec.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					import path from 'path'
 | 
				
			||||||
 | 
					import { setupPuppeteer } from './e2eUtils'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('e2e: markdown', () => {
 | 
				
			||||||
 | 
					  const { page, isVisible, value, html } = setupPuppeteer()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  async function testMarkdown(apiType: 'classic' | 'composition') {
 | 
				
			||||||
 | 
					    const baseUrl = `file://${path.resolve(
 | 
				
			||||||
 | 
					      __dirname,
 | 
				
			||||||
 | 
					      `../${apiType}/markdown.html`
 | 
				
			||||||
 | 
					    )}`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    await page().goto(baseUrl)
 | 
				
			||||||
 | 
					    expect(await isVisible('#editor')).toBe(true)
 | 
				
			||||||
 | 
					    expect(await value('textarea')).toBe('# hello')
 | 
				
			||||||
 | 
					    expect(await html('#editor div')).toBe('<h1 id="hello">hello</h1>\n')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    await page().type('textarea', '\n## foo\n\n- bar\n- baz')
 | 
				
			||||||
 | 
					    // assert the output is not updated yet because of debounce
 | 
				
			||||||
 | 
					    expect(await html('#editor div')).toBe('<h1 id="hello">hello</h1>\n')
 | 
				
			||||||
 | 
					    await page().waitFor(500)
 | 
				
			||||||
 | 
					    expect(await html('#editor div')).toBe(
 | 
				
			||||||
 | 
					      '<h1 id="hello">hello</h1>\n' +
 | 
				
			||||||
 | 
					        '<h2 id="foo">foo</h2>\n' +
 | 
				
			||||||
 | 
					        '<ul>\n<li>bar</li>\n<li>baz</li>\n</ul>\n'
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  test('classic', async () => {
 | 
				
			||||||
 | 
					    await testMarkdown('classic')
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  test('composition', async () => {
 | 
				
			||||||
 | 
					    await testMarkdown('composition')
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user