Workflow change

This commit is contained in:
kdeng00
2025-07-30 15:20:35 -04:00
parent 67b8ea8116
commit 89a617f967
2 changed files with 100 additions and 9 deletions
+1 -1
View File
@@ -68,7 +68,7 @@ jobs:
env:
ROOT_DIRECTORY: "/tmp"
DATABASE_URL: "postgres://${{ secrets.POSTGRES_USER }}:${{ secrets.POSTGRES_PASSWORD }}@localhost:5432/${{ secrets.POSTGRES_DB }}"
run: cargo test --verbose -- --test-threads=1
run: cargo test --verbose --
- name: Run clippy
run: cargo clippy -- -D warnings
+99 -8
View File
@@ -1862,7 +1862,7 @@ mod tests {
let app = super::init::app(pool).await;
let (id, _, _) = test_data::song_id().await.unwrap();
let (id, _, _, _) = test_data::song_id().await.unwrap();
let uri = format!("{}?id={id}", crate::callers::endpoints::GETSONGS);
@@ -1950,10 +1950,10 @@ mod tests {
}
pub mod test_data {
pub async fn song_id() -> Result<(uuid::Uuid, String, String), uuid::Error> {
pub async fn song_id() -> Result<(uuid::Uuid, String, String, String), uuid::Error> {
match uuid::Uuid::parse_str("44cf7940-34ff-489f-9124-d0ec90a55af9") {
Ok(id) => {
Ok((id, String::from("tests/I/track01.flac"), String::from("tests/I/Coverart-1.jpg")))
Ok((id, String::from("tests/I/"), String::from("track01.flac"), String::from("tests/I/Coverart-1.jpg")))
}
Err(err) => {
Err(err)
@@ -1961,10 +1961,10 @@ mod tests {
}
}
pub async fn other_song_id() -> Result<(uuid::Uuid, String, String), uuid::Error> {
pub async fn other_song_id() -> Result<(uuid::Uuid, String, String, String), uuid::Error> {
match uuid::Uuid::parse_str("94cf7940-34ff-489f-9124-d0ec90a55af4") {
Ok(id) => {
Ok((id, String::from("tests/I/track02.flac"), String::from("tests/I/Coverart-2.jpg")))
Ok((id, String::from("tests/I/"), String::from("track02.flac"), String::from("tests/I/Coverart-2.jpg")))
}
Err(err) => {
Err(err)
@@ -1996,7 +1996,7 @@ mod tests {
let app = super::init::app(pool).await;
let (id, _, _) = test_data::song_id().await.unwrap();
let (id, _, _, _) = test_data::song_id().await.unwrap();
let my_url = crate::callers::endpoints::STREAMSONG;
let last = my_url.len() - 5;
@@ -2052,7 +2052,7 @@ mod tests {
let app = super::init::app(pool).await;
let (id, _, _) = test_data::song_id().await.unwrap();
let (id, _, _, _) = test_data::song_id().await.unwrap();
let uri =
super::format_url_with_value(crate::callers::endpoints::DOWNLOADSONG, &id).await;
@@ -2144,6 +2144,88 @@ mod tests {
let _ = super::db_mgr::drop_database(&tm_pool, &db_name).await;
}
async fn get_test_data(song_directory: &String, song_filename: &String, coverart_path: &String) -> Result<(Vec<u8>, Vec<u8>), std::io::Error> {
let song = icarus_models::song::Song {
directory: song_directory.clone(),
filename: song_filename.clone(),
..Default::default()
};
let coverart = icarus_models::coverart::CoverArt {
path: coverart_path.clone(),
..Default::default()
};
match song.to_data() {
Ok(song_data) => match coverart.to_data() {
Ok(coverart_data) => {
Ok((song_data, coverart_data))
}
Err(err) => {
Err(err)
}
}
Err(err) => {
Err(err)
}
}
}
async fn save_test_again(song_directory: &String, song_filename: &String, song_data: Vec<u8>, coverart_path: &String, coverart_data: Vec<u8>) -> Result<(), std::io::Error> {
let song = icarus_models::song::Song {
directory: song_directory.clone(),
filename: song_filename.clone(),
..Default::default()
};
let coverart = icarus_models::coverart::CoverArt {
path: coverart_path.clone(),
..Default::default()
};
use std::io::Write;
match song.song_path() {
Ok(song_path) => {
let song_p = std::path::Path::new(&song_path);
match std::fs::File::create(song_p) {
Ok(mut song_file) => {
match song_file.write_all(&song_data) {
Ok(_) => {
}
Err(err) => {
return Err(err);
}
}
}
Err(err) => {
return Err(err);
}
}
}
Err(err) => {
return Err(err);
}
}
let coverart_p = std::path::Path::new(&coverart.path);
match std::fs::File::create(coverart_p) {
Ok(mut coverart_file) => {
match coverart_file.write_all(&coverart_data) {
Ok(_) => {
Ok(())
}
Err(err) => {
Err(err)
}
}
}
Err(err) => {
Err(err)
}
}
}
#[tokio::test]
async fn test_last_delete_song() {
let tm_pool = super::db_mgr::get_pool().await.unwrap();
@@ -2163,7 +2245,8 @@ mod tests {
let app = super::init::app(pool).await;
let (id, song_path, coverart_path) = test_data::other_song_id().await.unwrap();
let (id, song_directory, song_filename, coverart_path) = test_data::other_song_id().await.unwrap();
let (song_data, coverart_data) = get_test_data(&song_directory, &song_filename, &coverart_path).await.unwrap();
let uri =
super::format_url_with_value(crate::callers::endpoints::DELETESONG, &id).await;
@@ -2192,6 +2275,14 @@ mod tests {
"Song Ids do not match {id:?} {:?}",
song_and_coverart.song.id
);
match save_test_again(&song_directory, &song_filename, song_data, &coverart_path, coverart_data).await {
Ok(_) => {
}
Err(err) => {
assert!(false, "Error: {err:?}");
}
}
}
Err(err) => {
assert!(false, "Error: {err:?}");