- crates: common→application, api→presentation, infrastructure/*→adapters/* - new crates: api-types, infra-wiring - domain: errors/, models/, value_objects/, ports/, services/ - application: CQRS use cases (songs/, tabs/) w/ commands, queries, deps - unified DomainError replaces RepositoryError - workspace deps, unused dep cleanup - fix: parse plain-text chord lines (UG drops spans mid-song) - tests extracted to separate modules (tests/ dirs)
20 lines
518 B
Rust
20 lines
518 B
Rust
use super::*;
|
|
use domain::TabSource;
|
|
use std::path::PathBuf;
|
|
|
|
#[tokio::test]
|
|
async fn fetch_local_file() {
|
|
let fetcher = UgTabFetcher::new();
|
|
let path = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
|
.parent()
|
|
.unwrap()
|
|
.parent()
|
|
.unwrap()
|
|
.parent()
|
|
.unwrap()
|
|
.join("samples/drop_in_the_ocean.html");
|
|
let html = fetcher.fetch(TabSource::File(path)).await.unwrap();
|
|
assert!(html.contains("[Chorus]"));
|
|
assert!(html.contains("data-name=\"Em\""));
|
|
}
|