From 2a0efe70a52197997bb4e432a9ce2e064ce9ca5e Mon Sep 17 00:00:00 2001 From: Lucien Greathouse Date: Tue, 2 Jul 2019 16:09:49 -0700 Subject: [PATCH] Add rough tests to ensure broken projects stay broken --- server/tests/malformed_projects.rs | 45 +++++++++++++++++++ .../default.project.json | 2 +- .../src/bad-model.model.json | 0 .../default.project.json | 6 +++ .../src/RobloxInstance.meta.json | 0 .../src/RobloxInstance.rbxmx | 0 .../default.project.json | 2 +- .../malformed-stuff/default.project.json | 6 --- 8 files changed, 53 insertions(+), 8 deletions(-) create mode 100644 server/tests/malformed_projects.rs rename test-projects/{meta_files_bad => bad_json_model}/default.project.json (57%) rename test-projects/{malformed-stuff => bad_json_model}/src/bad-model.model.json (100%) create mode 100644 test-projects/bad_meta_rbxmx_properties/default.project.json rename test-projects/{meta_files_bad => bad_meta_rbxmx_properties}/src/RobloxInstance.meta.json (100%) rename test-projects/{meta_files_bad => bad_meta_rbxmx_properties}/src/RobloxInstance.rbxmx (100%) rename test-projects/{missing_files => bad_missing_files}/default.project.json (61%) delete mode 100644 test-projects/malformed-stuff/default.project.json diff --git a/server/tests/malformed_projects.rs b/server/tests/malformed_projects.rs new file mode 100644 index 00000000..a5bee0a9 --- /dev/null +++ b/server/tests/malformed_projects.rs @@ -0,0 +1,45 @@ +use std::{ + path::{Path, PathBuf}, + sync::Arc, +}; + +use librojo::{ + live_session::LiveSession, + project::Project, +}; + +lazy_static::lazy_static! { + static ref TEST_PROJECTS_ROOT: PathBuf = { + Path::new(env!("CARGO_MANIFEST_DIR")).join("../test-projects") + }; +} + +#[test] +fn bad_json_model() { + let project = Project::load_fuzzy(&TEST_PROJECTS_ROOT.join("bad_json_model")) + .expect("Project file didn't load"); + + if LiveSession::new(Arc::new(project)).is_ok() { + panic!("Project should not have succeeded"); + } +} + +#[test] +fn bad_meta_rbxmx_properties() { + let project = Project::load_fuzzy(&TEST_PROJECTS_ROOT.join("bad_meta_rbxmx_properties")) + .expect("Project file didn't load"); + + if LiveSession::new(Arc::new(project)).is_ok() { + panic!("Project should not have succeeded"); + } +} + +#[test] +fn bad_missing_files() { + let project = Project::load_fuzzy(&TEST_PROJECTS_ROOT.join("bad_missing_files")) + .expect("Project file didn't load"); + + if LiveSession::new(Arc::new(project)).is_ok() { + panic!("Project should not have succeeded"); + } +} \ No newline at end of file diff --git a/test-projects/meta_files_bad/default.project.json b/test-projects/bad_json_model/default.project.json similarity index 57% rename from test-projects/meta_files_bad/default.project.json rename to test-projects/bad_json_model/default.project.json index b0aed992..6ee28290 100644 --- a/test-projects/meta_files_bad/default.project.json +++ b/test-projects/bad_json_model/default.project.json @@ -1,5 +1,5 @@ { - "name": "meta_files_bad", + "name": "bad_json_model", "tree": { "$path": "src" } diff --git a/test-projects/malformed-stuff/src/bad-model.model.json b/test-projects/bad_json_model/src/bad-model.model.json similarity index 100% rename from test-projects/malformed-stuff/src/bad-model.model.json rename to test-projects/bad_json_model/src/bad-model.model.json diff --git a/test-projects/bad_meta_rbxmx_properties/default.project.json b/test-projects/bad_meta_rbxmx_properties/default.project.json new file mode 100644 index 00000000..8481c7f7 --- /dev/null +++ b/test-projects/bad_meta_rbxmx_properties/default.project.json @@ -0,0 +1,6 @@ +{ + "name": "bad_meta_rbxmx_properties", + "tree": { + "$path": "src" + } +} \ No newline at end of file diff --git a/test-projects/meta_files_bad/src/RobloxInstance.meta.json b/test-projects/bad_meta_rbxmx_properties/src/RobloxInstance.meta.json similarity index 100% rename from test-projects/meta_files_bad/src/RobloxInstance.meta.json rename to test-projects/bad_meta_rbxmx_properties/src/RobloxInstance.meta.json diff --git a/test-projects/meta_files_bad/src/RobloxInstance.rbxmx b/test-projects/bad_meta_rbxmx_properties/src/RobloxInstance.rbxmx similarity index 100% rename from test-projects/meta_files_bad/src/RobloxInstance.rbxmx rename to test-projects/bad_meta_rbxmx_properties/src/RobloxInstance.rbxmx diff --git a/test-projects/missing_files/default.project.json b/test-projects/bad_missing_files/default.project.json similarity index 61% rename from test-projects/missing_files/default.project.json rename to test-projects/bad_missing_files/default.project.json index 69fc0af0..e5ada9db 100644 --- a/test-projects/missing_files/default.project.json +++ b/test-projects/bad_missing_files/default.project.json @@ -1,5 +1,5 @@ { - "name": "missing-files", + "name": "bad_missing_files", "tree": { "$path": "does-not-exist" } diff --git a/test-projects/malformed-stuff/default.project.json b/test-projects/malformed-stuff/default.project.json deleted file mode 100644 index 710bd36c..00000000 --- a/test-projects/malformed-stuff/default.project.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "malformed-stuff", - "tree": { - "$path": "src" - } -} \ No newline at end of file