|  | @@ -8,6 +8,7 @@ async function createDBGraph(page: Page) {
 | 
	
		
			
				|  |  |    await page.click('text="Create db graph"')
 | 
	
		
			
				|  |  |    await page.waitForSelector('.new-graph')
 | 
	
		
			
				|  |  |    const name = `e2e-db-${Date.now()}`
 | 
	
		
			
				|  |  | +  await page.waitForTimeout(100)
 | 
	
		
			
				|  |  |    await page.keyboard.type(name)
 | 
	
		
			
				|  |  |    await page.locator('.new-graph > .ui__button').click()
 | 
	
		
			
				|  |  |    return name
 | 
	
	
		
			
				|  | @@ -20,11 +21,8 @@ test.skip('test db graph', async ({ page }) => {
 | 
	
		
			
				|  |  |    await page.pause()
 | 
	
		
			
				|  |  |  })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -test('block related apis',
 | 
	
		
			
				|  |  | +test('(File graph): block related apis',
 | 
	
		
			
				|  |  |    async ({ page }) => {
 | 
	
		
			
				|  |  | -    const name = await createDBGraph(page)
 | 
	
		
			
				|  |  | -    await page.waitForSelector(`a[title="logseq_db_${name}"]`)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      const callAPI = callPageAPI.bind(null, page)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      const bPageName = 'block-test-page'
 | 
	
	
		
			
				|  | @@ -113,6 +111,99 @@ test('block related apis',
 | 
	
		
			
				|  |  |      // await page.pause()
 | 
	
		
			
				|  |  |    })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +test('(DB graph): block related apis',
 | 
	
		
			
				|  |  | +  async ({ page }) => {
 | 
	
		
			
				|  |  | +    const name = await createDBGraph(page)
 | 
	
		
			
				|  |  | +    await page.waitForSelector(`a[title="logseq_db_${name}"]`)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const callAPI = callPageAPI.bind(null, page)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const bPageName = 'block-test-page'
 | 
	
		
			
				|  |  | +    await callAPI('create_page', bPageName, null, { createFirstBlock: false })
 | 
	
		
			
				|  |  | +    await callAPI('create_page', bPageName, null, { createFirstBlock: false })
 | 
	
		
			
				|  |  | +    await page.waitForSelector(`body[data-page="${bPageName}"]`)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    let p = await callAPI('get_current_page')
 | 
	
		
			
				|  |  | +    const bp = await callAPI('append_block_in_page', bPageName, 'tests')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    expect(p.name).toBe(bPageName)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    p = await callAPI('get_page', bPageName)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    expect(p.name).toBe(bPageName)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    await callAPI('edit_block', bp.uuid)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const b = (await callAPI('get_current_block'))
 | 
	
		
			
				|  |  | +    expect(Object.keys(b)).toContain('uuid')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    await page.waitForSelector('.block-editor > textarea')
 | 
	
		
			
				|  |  | +    await page.locator('.block-editor > textarea').fill('')
 | 
	
		
			
				|  |  | +    const content = 'test api'
 | 
	
		
			
				|  |  | +    await page.type('.block-editor > textarea', content)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const editingContent = await callAPI('get_editing_block_content')
 | 
	
		
			
				|  |  | +    expect(editingContent).toBe(content)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // create
 | 
	
		
			
				|  |  | +    let b1 = await callAPI('insert_block', b.uuid, content)
 | 
	
		
			
				|  |  | +    b1 = await callAPI('get_block', b1.uuid)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    expect(b1.parent.id).toBe(b.id)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // update
 | 
	
		
			
				|  |  | +    const content1 = content + '+ update!'
 | 
	
		
			
				|  |  | +    await callAPI('update_block', b1.uuid, content1)
 | 
	
		
			
				|  |  | +    b1 = await callAPI('get_block', b1.uuid)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    expect(b1.content).toBe(content1)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // remove
 | 
	
		
			
				|  |  | +    await callAPI('remove_block', b1.uuid)
 | 
	
		
			
				|  |  | +    b1 = await callAPI('get_block', b1.uuid)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    expect(b1).toBeNull()
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // traverse
 | 
	
		
			
				|  |  | +    b1 = await callAPI('insert_block', b.uuid, content1, { sibling: true })
 | 
	
		
			
				|  |  | +    const nb = await callAPI('get_next_sibling_block', b.uuid)
 | 
	
		
			
				|  |  | +    const pb = await callAPI('get_previous_sibling_block', b1.uuid)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    expect(nb.uuid).toBe(b1.uuid)
 | 
	
		
			
				|  |  | +    expect(pb.uuid).toBe(b.uuid)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // move
 | 
	
		
			
				|  |  | +    await callAPI('move_block', b.uuid, b1.uuid)
 | 
	
		
			
				|  |  | +    const mb = await callAPI('get_next_sibling_block', b1.uuid)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    expect(mb.uuid).toBe(b.uuid)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // properties
 | 
	
		
			
				|  |  | +    await callAPI('upsert_block_property', b1.uuid, 'a', 'a')
 | 
	
		
			
				|  |  | +    let prop1 = await callAPI('get_block_property', b1.uuid, 'a')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    expect(prop1.title).toBe('a')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    await callAPI('upsert_block_property', b1.uuid, 'a', 'b')
 | 
	
		
			
				|  |  | +    prop1 = await callAPI('get_block_property', b1.uuid, 'a')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    expect(prop1.title).toBe('b')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    await callAPI('remove_block_property', b1.uuid, 'a')
 | 
	
		
			
				|  |  | +    prop1 = await callAPI('get_block_property', b1.uuid, 'a')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    expect(prop1).toBeNull()
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    await callAPI('upsert_block_property', b1.uuid, 'a', 'a')
 | 
	
		
			
				|  |  | +    await callAPI('upsert_block_property', b1.uuid, 'b', 'b')
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    prop1 = await callAPI('get_block_properties', b1.uuid)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    expect(prop1).toEqual({ ':plugin.property/a': 'a', ':plugin.property/b': 'b' })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // await page.pause()
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  |   * load local tests plugin
 | 
	
		
			
				|  |  |   */
 |