mirror of
https://codeberg.org/demostf/api-test.git
synced 2026-06-03 09:34:10 +02:00
basic list test
This commit is contained in:
parent
a7c8e205d9
commit
6970dfe2a2
3 changed files with 82 additions and 18 deletions
26
Cargo.lock
generated
26
Cargo.lock
generated
|
|
@ -336,7 +336,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "demostf-client"
|
name = "demostf-client"
|
||||||
version = "0.1.2"
|
version = "0.1.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4806484ba6677ab29aa75bc15a89f16fa7715fc546274285ac014ecf189cf14b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"hex",
|
"hex",
|
||||||
|
|
@ -1076,9 +1078,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num_enum"
|
name = "num_enum"
|
||||||
version = "0.4.3"
|
version = "0.5.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ca565a7df06f3d4b485494f25ba05da1435950f4dc263440eda7a6fa9b8e36e4"
|
checksum = "226b45a5c2ac4dd696ed30fa6b94b057ad909c7b7fc2e0d0808192bced894066"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"derivative",
|
"derivative",
|
||||||
"num_enum_derive",
|
"num_enum_derive",
|
||||||
|
|
@ -1086,9 +1088,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num_enum_derive"
|
name = "num_enum_derive"
|
||||||
version = "0.4.3"
|
version = "0.5.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ffa5a33ddddfee04c0283a7653987d634e880347e96b5b2ed64de07efb59db9d"
|
checksum = "1c0fd9eba1d5db0994a239e09c1be402d35622277e35468ba891aa5e3188ce7e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro-crate",
|
"proc-macro-crate",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
|
|
@ -1148,22 +1150,22 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "parse-display"
|
name = "parse-display"
|
||||||
version = "0.1.2"
|
version = "0.4.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bd87725635cbae7fe960f91f55a114ed104e637790317cc8d9197ea16b058010"
|
checksum = "12035532e456d9f4f59fcfa3834dc5f45b391d9029f5287292bf41960b05ce91"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"lazy_static",
|
"once_cell",
|
||||||
"parse-display-derive",
|
"parse-display-derive",
|
||||||
"regex",
|
"regex",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "parse-display-derive"
|
name = "parse-display-derive"
|
||||||
version = "0.1.2"
|
version = "0.4.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cc52b391380aa8550348736a356bf028f5469391d580533a566e97543f55e813"
|
checksum = "449f5881ab953fa168d60a57dd182a3e1fdeff16bb9bdd309145fbd8f32326ec"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"lazy_static",
|
"once_cell",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
"regex",
|
"regex",
|
||||||
|
|
@ -1812,6 +1814,8 @@ checksum = "36474e732d1affd3a6ed582781b3683df3d0563714c59c39591e8ff707cf078e"
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tf-demo-parser"
|
name = "tf-demo-parser"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "aefd410a68248ad4192147294341137e0068467b3f2101ee0a6528b1c36123cf"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitbuffer",
|
"bitbuffer",
|
||||||
"enumflags2",
|
"enumflags2",
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,13 @@ authors = ["Robin Appelman <robin@icewind.nl>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
demostf-client = { version = "0.1.2", default-features = false, features = ["rustls-tls"], path = "../api-client" }
|
demostf-client = { version = "0.1.2", default-features = false, features = ["rustls-tls"] }
|
||||||
sqlx = { version = "0.4", features = ["postgres", "runtime-tokio-rustls"] }
|
sqlx = { version = "0.4", features = ["postgres", "runtime-tokio-rustls"] }
|
||||||
dotenv = "0.15.0"
|
dotenv = "0.15.0"
|
||||||
color-eyre = "0.5.8"
|
color-eyre = "0.5.8"
|
||||||
colored = "2"
|
colored = "2"
|
||||||
tokio = { version = "0.2", features = ["macros", "rt-core"] }
|
tokio = { version = "0.2", features = ["macros", "rt-core"] }
|
||||||
tf-demo-parser = { version = "0.1", path = "../tf-demo-parser" }
|
tf-demo-parser = "0.1"
|
||||||
bitbuffer = "0.7.1"
|
bitbuffer = "0.7.1"
|
||||||
|
|
||||||
[profile.dev.package.tf-demo-parser]
|
[profile.dev.package.tf-demo-parser]
|
||||||
|
|
|
||||||
70
src/main.rs
70
src/main.rs
|
|
@ -21,7 +21,10 @@ macro_rules! assert_object_eq {
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() -> Result<()> {
|
async fn main() -> Result<()> {
|
||||||
let harness = Harness::new(&dotenv::var("BASE_URL")?, &dotenv::var("DB_URL")?).await?;
|
let harness = Harness::new(&dotenv::var("BASE_URL")?, &dotenv::var("DB_URL")?).await?;
|
||||||
let gully_data = include_bytes!("../data/granary.dem");
|
let granary_data = include_bytes!("../data/granary.dem");
|
||||||
|
let process_data = include_bytes!("../data/process.dem");
|
||||||
|
let warmfrost_data = include_bytes!("../data/warmfrost.dem");
|
||||||
|
let coalplant_data = include_bytes!("../data/coalplant.dem");
|
||||||
|
|
||||||
Test::run(
|
Test::run(
|
||||||
"Upload with invalid credentials",
|
"Upload with invalid credentials",
|
||||||
|
|
@ -31,7 +34,7 @@ async fn main() -> Result<()> {
|
||||||
let result = client
|
let result = client
|
||||||
.upload_demo(
|
.upload_demo(
|
||||||
String::from("test.dem"),
|
String::from("test.dem"),
|
||||||
gully_data.to_vec(),
|
granary_data.to_vec(),
|
||||||
String::from("RED"),
|
String::from("RED"),
|
||||||
String::from("BLUE"),
|
String::from("BLUE"),
|
||||||
String::from("wrong_token"),
|
String::from("wrong_token"),
|
||||||
|
|
@ -58,7 +61,7 @@ async fn main() -> Result<()> {
|
||||||
&harness,
|
&harness,
|
||||||
|test| async move {
|
|test| async move {
|
||||||
let parser =
|
let parser =
|
||||||
DemoParser::new(BitReadBuffer::new(gully_data.to_vec(), LittleEndian).into());
|
DemoParser::new(BitReadBuffer::new(granary_data.to_vec(), LittleEndian).into());
|
||||||
let (header, state) = parser
|
let (header, state) = parser
|
||||||
.parse()
|
.parse()
|
||||||
.map_err(|_| Report::msg("Failed to parse demo"))?;
|
.map_err(|_| Report::msg("Failed to parse demo"))?;
|
||||||
|
|
@ -69,7 +72,7 @@ async fn main() -> Result<()> {
|
||||||
Ok(client
|
Ok(client
|
||||||
.upload_demo(
|
.upload_demo(
|
||||||
String::from("test.dem"),
|
String::from("test.dem"),
|
||||||
gully_data.to_vec(),
|
granary_data.to_vec(),
|
||||||
String::from("RED"),
|
String::from("RED"),
|
||||||
String::from("BLUE"),
|
String::from("BLUE"),
|
||||||
String::from("token"),
|
String::from("token"),
|
||||||
|
|
@ -130,7 +133,7 @@ async fn main() -> Result<()> {
|
||||||
let new_id = client
|
let new_id = client
|
||||||
.upload_demo(
|
.upload_demo(
|
||||||
String::from("test.dem"),
|
String::from("test.dem"),
|
||||||
gully_data.to_vec(),
|
granary_data.to_vec(),
|
||||||
String::from("RED"),
|
String::from("RED"),
|
||||||
String::from("BLUE"),
|
String::from("BLUE"),
|
||||||
String::from("token"),
|
String::from("token"),
|
||||||
|
|
@ -147,6 +150,63 @@ async fn main() -> Result<()> {
|
||||||
)
|
)
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
|
Test::run("Listings", &harness, |test| async move {
|
||||||
|
test.step("upload", |client| async move {
|
||||||
|
client
|
||||||
|
.upload_demo(
|
||||||
|
String::from("test1.dem"),
|
||||||
|
granary_data.to_vec(),
|
||||||
|
String::from("RED"),
|
||||||
|
String::from("BLUE"),
|
||||||
|
String::from("token"),
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
client
|
||||||
|
.upload_demo(
|
||||||
|
String::from("test2.dem"),
|
||||||
|
process_data.to_vec(),
|
||||||
|
String::from("RED"),
|
||||||
|
String::from("BLUE"),
|
||||||
|
String::from("token"),
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
client
|
||||||
|
.upload_demo(
|
||||||
|
String::from("test3.dem"),
|
||||||
|
warmfrost_data.to_vec(),
|
||||||
|
String::from("RED"),
|
||||||
|
String::from("BLUE"),
|
||||||
|
String::from("token"),
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
client
|
||||||
|
.upload_demo(
|
||||||
|
String::from("test3.dem"),
|
||||||
|
coalplant_data.to_vec(),
|
||||||
|
String::from("RED"),
|
||||||
|
String::from("BLUE"),
|
||||||
|
String::from("token"),
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
Ok(())
|
||||||
|
})
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
test.step("list defaults", |client| async move {
|
||||||
|
let list = client.list(ListParams::default(), 1).await?;
|
||||||
|
assert_eq(list.len(), 4)?;
|
||||||
|
assert_eq(list[0].id, 4)?;
|
||||||
|
assert_eq(list[1].id, 3)?;
|
||||||
|
assert_eq(list[2].id, 2)?;
|
||||||
|
assert_eq(list[3].id, 1)?;
|
||||||
|
Ok(())
|
||||||
|
})
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
})
|
||||||
|
.await;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue