Add tests for GatewayMessage to increase coverage

This commit is contained in:
bitfl0wer 2023-11-22 16:34:43 +01:00
parent 8a5537606a
commit e756999828
No known key found for this signature in database
GPG Key ID: 0ACD574FCF5226CF
1 changed files with 90 additions and 0 deletions

View File

@ -2,6 +2,7 @@ mod common;
use std::sync::{Arc, RwLock};
use chorus::errors::GatewayError;
use chorus::gateway::*;
use chorus::types::{self, ChannelModifySchema, RoleCreateModifySchema, RoleObject};
// PRETTYFYME: Move common wasm setup to common.rs
@ -125,3 +126,92 @@ async fn test_recursive_self_updating_structs() {
assert_eq!(guild_role_inner.name, "yippieee".to_string());
common::teardown(bundle).await;
}
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[cfg_attr(not(target_arch = "wasm32"), test)]
fn test_error() {
let error = GatewayMessage("4000".to_string()).error().unwrap();
assert_eq!(error, GatewayError::Unknown);
let error = GatewayMessage("4001".to_string()).error().unwrap();
assert_eq!(error, GatewayError::UnknownOpcode);
let error = GatewayMessage("4002".to_string()).error().unwrap();
assert_eq!(error, GatewayError::Decode);
let error = GatewayMessage("4003".to_string()).error().unwrap();
assert_eq!(error, GatewayError::NotAuthenticated);
let error = GatewayMessage("4004".to_string()).error().unwrap();
assert_eq!(error, GatewayError::AuthenticationFailed);
let error = GatewayMessage("4005".to_string()).error().unwrap();
assert_eq!(error, GatewayError::AlreadyAuthenticated);
let error = GatewayMessage("4007".to_string()).error().unwrap();
assert_eq!(error, GatewayError::InvalidSequenceNumber);
let error = GatewayMessage("4008".to_string()).error().unwrap();
assert_eq!(error, GatewayError::RateLimited);
let error = GatewayMessage("4009".to_string()).error().unwrap();
assert_eq!(error, GatewayError::SessionTimedOut);
let error = GatewayMessage("4010".to_string()).error().unwrap();
assert_eq!(error, GatewayError::InvalidShard);
let error = GatewayMessage("4011".to_string()).error().unwrap();
assert_eq!(error, GatewayError::ShardingRequired);
let error = GatewayMessage("4012".to_string()).error().unwrap();
assert_eq!(error, GatewayError::InvalidAPIVersion);
let error = GatewayMessage("4013".to_string()).error().unwrap();
assert_eq!(error, GatewayError::InvalidIntents);
let error = GatewayMessage("4014".to_string()).error().unwrap();
assert_eq!(error, GatewayError::DisallowedIntents);
}
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
#[cfg_attr(not(target_arch = "wasm32"), test)]
fn test_error_message() {
let error = GatewayMessage("Unknown Error".to_string()).error().unwrap();
assert_eq!(error, GatewayError::Unknown);
let error = GatewayMessage("Unknown Opcode".to_string())
.error()
.unwrap();
assert_eq!(error, GatewayError::UnknownOpcode);
let error = GatewayMessage("Decode Error".to_string()).error().unwrap();
assert_eq!(error, GatewayError::Decode);
let error = GatewayMessage("Not Authenticated".to_string())
.error()
.unwrap();
assert_eq!(error, GatewayError::NotAuthenticated);
let error = GatewayMessage("Authentication Failed".to_string())
.error()
.unwrap();
assert_eq!(error, GatewayError::AuthenticationFailed);
let error = GatewayMessage("Already Authenticated".to_string())
.error()
.unwrap();
assert_eq!(error, GatewayError::AlreadyAuthenticated);
let error = GatewayMessage("Invalid Seq".to_string()).error().unwrap();
assert_eq!(error, GatewayError::InvalidSequenceNumber);
let error = GatewayMessage("Rate Limited".to_string()).error().unwrap();
assert_eq!(error, GatewayError::RateLimited);
let error = GatewayMessage("Session Timed Out".to_string())
.error()
.unwrap();
assert_eq!(error, GatewayError::SessionTimedOut);
let error = GatewayMessage("Invalid Shard".to_string()).error().unwrap();
assert_eq!(error, GatewayError::InvalidShard);
let error = GatewayMessage("Sharding Required".to_string())
.error()
.unwrap();
assert_eq!(error, GatewayError::ShardingRequired);
let error = GatewayMessage("Invalid API Version".to_string())
.error()
.unwrap();
assert_eq!(error, GatewayError::InvalidAPIVersion);
let error = GatewayMessage("Invalid Intent(s)".to_string())
.error()
.unwrap();
assert_eq!(error, GatewayError::InvalidIntents);
let error = GatewayMessage("Disallowed Intent(s)".to_string())
.error()
.unwrap();
assert_eq!(error, GatewayError::DisallowedIntents);
// Also test the dot thing
let error = GatewayMessage("Invalid Intent(s).".to_string())
.error()
.unwrap();
assert_eq!(error, GatewayError::InvalidIntents);
}