From 0847821f5eecaf07a21364cd749c6d4db3ab7f47 Mon Sep 17 00:00:00 2001 From: bitfl0wer Date: Sat, 20 May 2023 21:04:03 +0200 Subject: [PATCH] Create integration.rs, is broken right now --- Cargo.toml | 5 +++- src/instance.rs | 3 +-- tests/integration.rs | 55 ++++++++++++++++++++++++++++++++++++++------ 3 files changed, 53 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f346a21..d0312a4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,7 @@ custom_error = "1.9.2" native-tls = "0.2.11" tokio-tungstenite = {version = "0.18.0", features = ["native-tls"]} futures-util = "0.3.28" -http = "0.2.9" \ No newline at end of file +http = "0.2.9" + +[dev-dependencies] +lazy_static = "1.4.0" \ No newline at end of file diff --git a/src/instance.rs b/src/instance.rs index ee33961..dfb9e2f 100644 --- a/src/instance.rs +++ b/src/instance.rs @@ -1,10 +1,9 @@ use crate::api::limits::Limits; -use crate::api::types::{InstancePolicies}; +use crate::api::types::InstancePolicies; use crate::errors::{FieldFormatError, InstanceServerError}; use crate::limit::LimitedRequester; use crate::URLBundle; - use std::fmt; #[derive(Debug)] diff --git a/tests/integration.rs b/tests/integration.rs index 7b6841e..8b4990b 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -1,18 +1,59 @@ -use chorus::{instance::Instance, limit::LimitedRequester, URLBundle}; +use std::sync::Mutex; -struct TestBundle { - urls: URLBundle, - instance: Instance, +use chorus::{ + api::{AuthUsername, LoginSchema, User}, + instance::Instance, + limit::LimitedRequester, + URLBundle, +}; + +use lazy_static::lazy_static; + +lazy_static! { + static ref INSTANCE: Mutex = + tokio::runtime::Runtime::new().unwrap().block_on(async { + Mutex::new( + Instance::new( + URLBundle::new( + "http://localhost:3001/api".to_string(), + "ws://localhost:3001".to_string(), + "http://localhost:3001".to_string(), + ), + LimitedRequester::new().await, + ) + .await + .unwrap(), + ) + }); } -async fn setup() -> TestBundle { +struct TestBundle<'a> { + urls: URLBundle, + user: User<'a>, +} + +async fn setup<'a>() -> TestBundle<'a> { let urls = URLBundle::new( "http://localhost:3001/api".to_string(), "ws://localhost:3001".to_string(), "http://localhost:3001".to_string(), ); let requester = LimitedRequester::new().await; - let instance = Instance::new(urls.clone(), requester).await.unwrap(); + let mut instance = Instance::new(urls.clone(), requester).await.unwrap(); + // Requires the existance of the below user. + let login_schema: LoginSchema = LoginSchema::new( + AuthUsername::new("user@test.xyz".to_string()).unwrap(), + "transrights".to_string(), + None, + None, + None, + None, + ) + .unwrap(); + let user = instance.login_account(&login_schema).await.unwrap(); - TestBundle { urls, instance } + TestBundle { + urls: urls, + user: user, + } }