use bat_adapters::manifest::ManifestDriverRegistry; use bat_core::domain::ResourceType; #[tokio::test] async fn parses_current_catalog_fixture_with_resource_categories() { let manifest = ManifestDriverRegistry::with_defaults() .parse(include_bytes!( "fixtures/addressables_regression/current_catalog.json" )) .await .unwrap(); assert_eq!(manifest.resources.len(), 4); assert_eq!( manifest.resources[0].resource_type, ResourceType::TableBundle ); assert_eq!(manifest.resources[1].resource_type, ResourceType::Media); assert_eq!(manifest.resources[2].resource_type, ResourceType::TextAsset); assert_eq!( manifest.resources[3].dependencies, vec!["shared_dependencies.bundle".to_string()] ); assert_eq!( manifest.metadata.cdn_prefixes, vec!["https://fixture.invalid/current/".to_string()] ); } #[tokio::test] async fn parses_previous_catalog_fixture_using_internal_ids() { let manifest = ManifestDriverRegistry::with_defaults() .parse(include_bytes!( "fixtures/addressables_regression/previous_catalog.json" )) .await .unwrap(); assert_eq!(manifest.resources.len(), 3); assert_eq!( manifest.resources[0].resource_type, ResourceType::AssetBundle ); assert_eq!(manifest.resources[1].resource_type, ResourceType::Manifest); assert_eq!( manifest.resources[2].resource_type, ResourceType::TableBundle ); } #[tokio::test] async fn parses_catalog_structure_change_with_alias_fields() { let manifest = ManifestDriverRegistry::with_defaults() .parse(include_bytes!( "fixtures/addressables_regression/structure_changed_catalog.json" )) .await .unwrap(); assert_eq!(manifest.resources.len(), 2); assert_eq!(manifest.resources[0].resource_type, ResourceType::Media); assert_eq!( manifest.resources[0].dependencies, vec!["shared_assets_current.bundle".to_string()] ); assert_eq!(manifest.resources[1].resource_type, ResourceType::TextAsset); assert_eq!(manifest.resources[1].address.as_deref(), Some("lesson")); }