Workflow change
This commit is contained in:
@@ -68,7 +68,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
ROOT_DIRECTORY: "/tmp"
|
ROOT_DIRECTORY: "/tmp"
|
||||||
DATABASE_URL: "postgres://${{ secrets.POSTGRES_USER }}:${{ secrets.POSTGRES_PASSWORD }}@localhost:5432/${{ secrets.POSTGRES_DB }}"
|
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
|
- name: Run clippy
|
||||||
run: cargo clippy -- -D warnings
|
run: cargo clippy -- -D warnings
|
||||||
|
|||||||
+99
-8
@@ -1862,7 +1862,7 @@ mod tests {
|
|||||||
|
|
||||||
let app = super::init::app(pool).await;
|
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);
|
let uri = format!("{}?id={id}", crate::callers::endpoints::GETSONGS);
|
||||||
|
|
||||||
@@ -1950,10 +1950,10 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub mod test_data {
|
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") {
|
match uuid::Uuid::parse_str("44cf7940-34ff-489f-9124-d0ec90a55af9") {
|
||||||
Ok(id) => {
|
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) => {
|
||||||
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") {
|
match uuid::Uuid::parse_str("94cf7940-34ff-489f-9124-d0ec90a55af4") {
|
||||||
Ok(id) => {
|
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) => {
|
||||||
Err(err)
|
Err(err)
|
||||||
@@ -1996,7 +1996,7 @@ mod tests {
|
|||||||
|
|
||||||
let app = super::init::app(pool).await;
|
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 my_url = crate::callers::endpoints::STREAMSONG;
|
||||||
let last = my_url.len() - 5;
|
let last = my_url.len() - 5;
|
||||||
@@ -2052,7 +2052,7 @@ mod tests {
|
|||||||
|
|
||||||
let app = super::init::app(pool).await;
|
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 =
|
let uri =
|
||||||
super::format_url_with_value(crate::callers::endpoints::DOWNLOADSONG, &id).await;
|
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;
|
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]
|
#[tokio::test]
|
||||||
async fn test_last_delete_song() {
|
async fn test_last_delete_song() {
|
||||||
let tm_pool = super::db_mgr::get_pool().await.unwrap();
|
let tm_pool = super::db_mgr::get_pool().await.unwrap();
|
||||||
@@ -2163,7 +2245,8 @@ mod tests {
|
|||||||
|
|
||||||
let app = super::init::app(pool).await;
|
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 =
|
let uri =
|
||||||
super::format_url_with_value(crate::callers::endpoints::DELETESONG, &id).await;
|
super::format_url_with_value(crate::callers::endpoints::DELETESONG, &id).await;
|
||||||
@@ -2192,6 +2275,14 @@ mod tests {
|
|||||||
"Song Ids do not match {id:?} {:?}",
|
"Song Ids do not match {id:?} {:?}",
|
||||||
song_and_coverart.song.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) => {
|
Err(err) => {
|
||||||
assert!(false, "Error: {err:?}");
|
assert!(false, "Error: {err:?}");
|
||||||
|
|||||||
Reference in New Issue
Block a user