# AFFiNE Test Tools ## Structured Document Creation `affine-template.ts` provides a concise way to create test documents, using a html-like syntax. ### Basic Usage ```typescript import { affine } from '@blocksuite/affine-shared/test-utils'; // Create a simple document const doc = affine` Hello, World! `; ``` ### Complex Structure Example ```typescript // Create a document with multiple notes and paragraphs const doc = affine` First paragraph Second paragraph Another note `; ``` ### Application in Tests This tool is particularly suitable for creating documents with specific structures in test cases: ```typescript import { describe, expect, it } from 'vitest'; import { affine } from '../__tests__/utils/affine-template'; describe('My Test', () => { it('should correctly handle document structure', () => { const doc = affine` Test content `; // Get blocks const pages = doc.getBlocksByFlavour('affine:page'); const notes = doc.getBlocksByFlavour('affine:note'); const paragraphs = doc.getBlocksByFlavour('affine:paragraph'); expect(pages.length).toBe(1); expect(notes.length).toBe(1); expect(paragraphs.length).toBe(1); // Perform more tests here... }); }); ``` ### Supported Block Types Currently supports the following block types: - `affine-page` → `affine:page` - `affine-note` → `affine:note` - `affine-paragraph` → `affine:paragraph` - `affine-list` → `affine:list` - `affine-image` → `affine:image`