52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { tap, expect } from '../../ts_tapbundle/index.js';
 | |
| 
 | |
| // Test basic snapshot functionality
 | |
| tap.tags('unit', 'snapshot')
 | |
|   .test('should match string snapshot', async (toolsArg) => {
 | |
|     const testString = 'Hello, World!';
 | |
|     await toolsArg.matchSnapshot(testString);
 | |
|   });
 | |
| 
 | |
| // Test object snapshot
 | |
| tap.tags('unit', 'snapshot')
 | |
|   .test('should match object snapshot', async (toolsArg) => {
 | |
|     const testObject = {
 | |
|       name: 'Test User',
 | |
|       age: 30,
 | |
|       hobbies: ['reading', 'coding', 'gaming'],
 | |
|       metadata: {
 | |
|         created: '2024-01-01',
 | |
|         updated: '2024-01-15'
 | |
|       }
 | |
|     };
 | |
|     await toolsArg.matchSnapshot(testObject);
 | |
|   });
 | |
| 
 | |
| // Test named snapshots
 | |
| tap.tags('unit', 'snapshot')
 | |
|   .test('should handle multiple named snapshots', async (toolsArg) => {
 | |
|     const config1 = { version: '1.0.0', features: ['a', 'b'] };
 | |
|     const config2 = { version: '2.0.0', features: ['a', 'b', 'c'] };
 | |
|     
 | |
|     await toolsArg.matchSnapshot(config1, 'config_v1');
 | |
|     await toolsArg.matchSnapshot(config2, 'config_v2');
 | |
|   });
 | |
| 
 | |
| // Test dynamic content with snapshot
 | |
| tap.tags('unit', 'snapshot')
 | |
|   .test('should handle template snapshot', async (toolsArg) => {
 | |
|     const template = `
 | |
|       <div class="container">
 | |
|         <h1>Welcome</h1>
 | |
|         <p>This is a test template</p>
 | |
|         <ul>
 | |
|           <li>Item 1</li>
 | |
|           <li>Item 2</li>
 | |
|         </ul>
 | |
|       </div>
 | |
|     `.trim();
 | |
|     
 | |
|     await toolsArg.matchSnapshot(template, 'html_template');
 | |
|   });
 | |
| 
 | |
| tap.start(); |