| 1280 | |
| 1281 | #[test] |
| 1282 | fn test_extract_interface() { |
| 1283 | let mut extractor = TypeScriptExtractor::new(); |
| 1284 | let source = r#" |
| 1285 | export interface AuthConfig { |
| 1286 | clientId: string; |
| 1287 | clientSecret: string; |
| 1288 | redirectUri: string; |
| 1289 | } |
| 1290 | |
| 1291 | interface BaseEntity { |
| 1292 | id: string; |
| 1293 | createdAt: Date; |
| 1294 | } |
| 1295 | |
| 1296 | export interface User extends BaseEntity { |
| 1297 | name: string; |
| 1298 | email: string; |
| 1299 | } |
| 1300 | "#; |
| 1301 | let entities = extractor.extract(source, "test.ts"); |
| 1302 | |
| 1303 | assert_eq!(entities.len(), 3); |
| 1304 | |
| 1305 | let auth_config = entities.iter().find(|e| e.name == "AuthConfig").unwrap(); |
| 1306 | assert_eq!(auth_config.kind, EntityKind::Interface); |
| 1307 | assert!(auth_config.exported); |
| 1308 | |
| 1309 | let user = entities.iter().find(|e| e.name == "User").unwrap(); |
| 1310 | assert!(user.signature.as_ref().unwrap().contains("extends")); |
| 1311 | } |
| 1312 | |
| 1313 | #[test] |
| 1314 | fn test_extract_type_alias() { |