Workflow change
This commit is contained in:
@@ -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
@@ -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:?}");
|
||||
|
||||
Reference in New Issue
Block a user