135 lines
2.9 KiB
Rust
135 lines
2.9 KiB
Rust
use crate::helpers::{TestServer, output_contains, run_brewlog, setup};
|
|
|
|
#[test]
|
|
fn test_add_roaster_requires_authentication() {
|
|
let server = TestServer::start();
|
|
|
|
let output = run_brewlog(
|
|
&[
|
|
"add-roaster",
|
|
"--name",
|
|
"Test Roasters",
|
|
"--country",
|
|
"UK",
|
|
"--server",
|
|
&server.address,
|
|
],
|
|
&[],
|
|
);
|
|
|
|
assert!(
|
|
!output.status.success(),
|
|
"add-roaster without auth should fail"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn test_add_roaster_with_authentication() {
|
|
let server = TestServer::start();
|
|
let token = server.create_token("test-token");
|
|
|
|
let output = run_brewlog(
|
|
&[
|
|
"add-roaster",
|
|
"--name",
|
|
"Test Roasters",
|
|
"--country",
|
|
"UK",
|
|
"--server",
|
|
&server.address,
|
|
],
|
|
&[("BREWLOG_TOKEN", &token)],
|
|
);
|
|
|
|
assert!(
|
|
output.status.success(),
|
|
"add-roaster with auth should succeed"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn test_list_roasters_works_without_authentication() {
|
|
let server = TestServer::start();
|
|
|
|
let output = run_brewlog(&["list-roasters", "--server", &server.address], &[]);
|
|
|
|
assert!(
|
|
output.status.success(),
|
|
"list-roasters should work without auth"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn test_list_roasters_shows_added_roaster() {
|
|
let server = TestServer::start();
|
|
let token = server.create_token("test-token");
|
|
|
|
// Add a roaster
|
|
let add_output = run_brewlog(
|
|
&[
|
|
"add-roaster",
|
|
"--name",
|
|
"Example Roasters",
|
|
"--country",
|
|
"USA",
|
|
"--server",
|
|
&server.address,
|
|
],
|
|
&[("BREWLOG_TOKEN", &token)],
|
|
);
|
|
|
|
assert!(add_output.status.success());
|
|
|
|
// List roasters
|
|
let list_output = run_brewlog(&["list-roasters", "--server", &server.address], &[]);
|
|
|
|
assert!(list_output.status.success());
|
|
assert!(
|
|
output_contains(&list_output, "Example Roasters"),
|
|
"Should list the added roaster"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn test_delete_roaster_requires_authentication() {
|
|
let server = TestServer::start();
|
|
|
|
let output = run_brewlog(
|
|
&[
|
|
"delete-roaster",
|
|
"--id",
|
|
"some-id",
|
|
"--server",
|
|
&server.address,
|
|
],
|
|
&[],
|
|
);
|
|
|
|
assert!(
|
|
!output.status.success(),
|
|
"delete-roaster without auth should fail"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn test_update_roaster_requires_authentication() {
|
|
let server = TestServer::start();
|
|
|
|
let output = run_brewlog(
|
|
&[
|
|
"update-roaster",
|
|
"--id",
|
|
"some-id",
|
|
"--name",
|
|
"Updated Name",
|
|
"--server",
|
|
&server.address,
|
|
],
|
|
&[],
|
|
);
|
|
|
|
assert!(
|
|
!output.status.success(),
|
|
"update-roaster without auth should fail"
|
|
);
|
|
}
|