add unit test
This commit is contained in:
parent
7cf2b39cde
commit
874b0a2c69
4 changed files with 53 additions and 13 deletions
|
@ -41,7 +41,7 @@
|
|||
"universal": "napi universal",
|
||||
"version": "napi version",
|
||||
"format": "cargo fmt",
|
||||
"cargo:unit": "cargo test unit_test",
|
||||
"cargo:integration": "cargo test --no-default-features -F noarray int_test -- --test-threads=1"
|
||||
"cargo:unit": "cargo test unit_test && cargo test -F napi unit_test",
|
||||
"cargo:integration": "cargo test -F noarray int_test -- --test-threads=1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -142,7 +142,7 @@ mod unit_test {
|
|||
#[test]
|
||||
fn antenna_valid() {
|
||||
let instance = json!({
|
||||
"id": "9f4x0bkx1u",
|
||||
"id": "9fil64s6g7cskdrb",
|
||||
"createdAt": "2023-05-24T06:56:14.323Z",
|
||||
"name": "Valid Antenna",
|
||||
"keywords": [["first", "keyword"], ["second"]],
|
||||
|
@ -150,7 +150,7 @@ mod unit_test {
|
|||
"src": "users",
|
||||
// "userListId" and "userGroupId" can be null or be omitted
|
||||
"userListId": null,
|
||||
"users": ["9f4yjw6m13", "9f4yk2cp6d"],
|
||||
"users": ["9fil64s6g7cskdrb", "9fil66brl1udxau2"],
|
||||
"instances": [],
|
||||
// "caseSensitive", "notify", "withReplies", "withFile", and
|
||||
// "hasUnreadNote" are false if ommited
|
||||
|
@ -175,14 +175,14 @@ mod unit_test {
|
|||
"keywords": "invalid keyword",
|
||||
// "excludeKeywords" is required
|
||||
"excludeKeywords": null,
|
||||
// "src" should be one of "home", "all", "users", "list", "group", and
|
||||
// "src" must be one of "home", "all", "users", "list", "group", and
|
||||
// "instances"
|
||||
"src": "invalid_src",
|
||||
// "userListId" is string
|
||||
"userListId": ["9f4ziiqfxw"],
|
||||
// "users" must be an array of strings
|
||||
"users": [1, "9f4ykyuza6"],
|
||||
"instances": ["9f4ykyuybo"],
|
||||
"users": [1, "9fil64s6g7cskdrb"],
|
||||
"instances": ["9fil65jzhtjpi3xn"],
|
||||
// "caseSensitive" is boolean
|
||||
"caseSensitive": 0,
|
||||
"notify": true,
|
||||
|
|
|
@ -95,13 +95,53 @@ pub static VALIDATOR: Lazy<JSONSchema> = Lazy::new(|| App::validator());
|
|||
|
||||
#[cfg(test)]
|
||||
mod unit_test {
|
||||
use pretty_assertions::assert_eq;
|
||||
use serde_json::json;
|
||||
|
||||
use crate::util::id::{create_id, init_id};
|
||||
use crate::util::random::gen_string;
|
||||
|
||||
use super::VALIDATOR;
|
||||
|
||||
#[test]
|
||||
fn valid() {
|
||||
todo!();
|
||||
fn app_valid() {
|
||||
init_id(12, "");
|
||||
let instance = json!({
|
||||
"id": create_id().unwrap(),
|
||||
"name": "Test App",
|
||||
"secret": gen_string(24),
|
||||
"callbackUrl": "urn:ietf:wg:oauth:2.0:oob",
|
||||
"permission": ["read:account", "write:account", "read:notes"],
|
||||
});
|
||||
|
||||
assert!(VALIDATOR.is_valid(&instance));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn invalid() {
|
||||
todo!();
|
||||
fn app_invalid() {
|
||||
init_id(12, "");
|
||||
let instance = json!({
|
||||
"id": create_id().unwrap(),
|
||||
// "name" is required
|
||||
"name": null,
|
||||
// "permission" must be one of the app permissions
|
||||
"permission": ["write:invalid_perm", "write:notes"],
|
||||
// "secret" is a nullable string
|
||||
"secret": 123,
|
||||
// "is_authorized" is a nullable boolean
|
||||
"isAuthorized": "true-ish",
|
||||
});
|
||||
let result = VALIDATOR
|
||||
.validate(&instance)
|
||||
.expect_err("validation must fail");
|
||||
let mut paths: Vec<String> = result
|
||||
.map(|e| e.instance_path.to_string())
|
||||
.filter(|e| !e.is_empty())
|
||||
.collect();
|
||||
paths.sort();
|
||||
assert_eq!(
|
||||
paths,
|
||||
vec!["/isAuthorized", "/name", "/permission/0", "/secret"]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,9 +72,9 @@ mod unit_test {
|
|||
|
||||
#[test]
|
||||
fn can_generate_aid_compat_ids() {
|
||||
id::native_init_id_generator(16, "".to_string());
|
||||
id::native_init_id_generator(20, "".to_string());
|
||||
let id1 = id::native_create_id(Utc::now().timestamp_millis().into());
|
||||
assert_eq!(id1.len(), 16);
|
||||
assert_eq!(id1.len(), 20);
|
||||
let id1 = id::native_create_id(Utc::now().timestamp_millis().into());
|
||||
let id2 = id::native_create_id(Utc::now().timestamp_millis().into());
|
||||
assert_ne!(id1, id2);
|
||||
|
|
Loading…
Reference in a new issue