Skip to content
This repository has been archived by the owner on Jun 29, 2023. It is now read-only.

Commit

Permalink
test: add tests for file
Browse files Browse the repository at this point in the history
  • Loading branch information
Florian Fromm authored and FlrnFrmm committed Apr 1, 2023
1 parent 0ad360b commit 22db6bc
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 2 deletions.
2 changes: 1 addition & 1 deletion crates/dagger-sdk/tests/standard_apis/directory.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use dagger_sdk::{connect, ContainerExecOptsBuilder};
use dagger_sdk::connect;
use pretty_assertions::assert_eq;

#[tokio::test]
Expand Down
62 changes: 62 additions & 0 deletions crates/dagger-sdk/tests/standard_apis/file.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
use dagger_sdk::connect;
use pretty_assertions::assert_eq;

static TEST_FILE_PATH: &str = "./data/";
static TEST_FILE_NAME: &str = "test.txt";
static TEST_FILE_CONTENT: &str = "This is a test file.";
static ALPINE_VERSION: &str = "3.16.2";

#[tokio::test]
async fn test_file_from_host() -> eyre::Result<()> {
setup_file().await?;

let client = connect().await.unwrap();

let file = client.host().directory(TEST_FILE_PATH).file(TEST_FILE_NAME);
let file_content = file.contents().await?;
assert_eq!(file_content, TEST_FILE_CONTENT);

let file_retrieved_by_id = client.file(file.id().await?);
let file_retrieved_by_id_content = file_retrieved_by_id.contents().await?;
assert_eq!(file_retrieved_by_id_content, TEST_FILE_CONTENT);

cleanup_file().await
}

#[tokio::test]
async fn test_file_from_container() -> eyre::Result<()> {
let client = connect().await.unwrap();

let alpine = client.container().from(format!("alpine:{}", ALPINE_VERSION));
let file = alpine.file("/etc/alpine-release");

let file_content = file.contents().await?;
let expected_file_content = format!("{}\n", ALPINE_VERSION);
assert_eq!(file_content, expected_file_content);

let file_retrieved_by_id = client.file(file.id().await?);
let file_retrieved_by_id_contents = file_retrieved_by_id.contents().await?;
assert_eq!(file_retrieved_by_id_contents, expected_file_content);

Ok(())
}

async fn setup_file() -> eyre::Result<()> {
let full_file_path = String::from(TEST_FILE_PATH) + TEST_FILE_NAME;
tokio::fs::create_dir(TEST_FILE_PATH)
.await
.map_err(eyre::Error::from)?;
tokio::fs::write(full_file_path, TEST_FILE_CONTENT)
.await
.map_err(eyre::Error::from)
}

async fn cleanup_file() -> eyre::Result<()> {
let full_file_path = String::from(TEST_FILE_PATH) + TEST_FILE_NAME;
tokio::fs::remove_file(full_file_path)
.await
.map_err(eyre::Error::from)?;
tokio::fs::remove_dir(TEST_FILE_PATH)
.await
.map_err(eyre::Error::from)
}
2 changes: 1 addition & 1 deletion crates/dagger-sdk/tests/standard_apis/git.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use dagger_sdk::{connect, ContainerExecOptsBuilder};
use dagger_sdk::connect;
use pretty_assertions::assert_eq;

#[tokio::test]
Expand Down
1 change: 1 addition & 0 deletions crates/dagger-sdk/tests/standard_apis/mod.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
mod container;
mod directory;
mod file;
mod git;

use dagger_sdk::connect;
Expand Down

0 comments on commit 22db6bc

Please sign in to comment.