From f43777e37e71520e1cfba84c5aaed81bc3083e07 Mon Sep 17 00:00:00 2001 From: Lucien Greathouse Date: Wed, 25 Mar 2020 17:01:28 -0700 Subject: [PATCH] Require a Rojo project again (#307) --- ... => rojo_test__build_test__rbxmx_ref.snap} | 0 .../deep_nesting/default.project.json | 6 + .../level-1/level-2/level-3/.gitkeep | 0 .../init_with_children/default.project.json | 6 + .../init_with_children/{ => src}/init.lua | 0 .../init_with_children/{ => src}/other.lua | 0 rojo-test/build-tests/plain.txt | 1 - .../rbxmx_ref/default.project.json | 6 + .../model.rbxmx} | 0 .../add_folder/default.project.json | 6 + .../add_folder/src}/.gitkeep | 0 .../edit_init/default.project.json | 6 + .../serve-tests/edit_init/{ => src}/init.lua | 0 rojo-test/serve-tests/just_txt.txt | 1 - .../serve-tests/move_folder_of_stuff/.gitkeep | 0 .../move_folder_of_stuff/default.project.json | 6 + .../src}/.gitkeep | 0 .../remove_file/default.project.json | 6 + .../remove_file/{ => src}/hello.txt | 0 .../serve-tests/scripts/default.project.json | 6 + .../scripts/{ => src}/bar.server.lua | 0 .../serve-tests/scripts/{ => src}/foo.lua | 0 rojo-test/src/build_test.rs | 12 +- rojo-test/src/serve_test.rs | 30 +-- src/serve_session.rs | 245 ++---------------- ...session__change_file_in_project_after.snap | 35 --- ...ession__change_file_in_project_before.snap | 35 --- ...session__change_file_in_project_patch.snap | 16 -- ...rve_session__change_script_meta_after.snap | 36 --- ...ve_session__change_script_meta_before.snap | 36 --- ...rve_session__change_script_meta_patch.snap | 20 -- ..._serve_session__change_txt_file_after.snap | 20 -- ...serve_session__change_txt_file_before.snap | 20 -- ..._serve_session__change_txt_file_patch.snap | 16 -- ...e_session__serve_session__just_folder.snap | 20 -- ...n__serve_session__project_with_folder.snap | 37 --- ...sion__serve_session__script_with_meta.snap | 36 --- src/web/ui.rs | 2 +- 38 files changed, 70 insertions(+), 596 deletions(-) rename rojo-test/build-test-snapshots/{rojo_test__build_test__rbxmx_ref.rbxmx.snap => rojo_test__build_test__rbxmx_ref.snap} (100%) create mode 100644 rojo-test/build-tests/deep_nesting/default.project.json rename rojo-test/build-tests/deep_nesting/{ => src}/level-1/level-2/level-3/.gitkeep (100%) create mode 100644 rojo-test/build-tests/init_with_children/default.project.json rename rojo-test/build-tests/init_with_children/{ => src}/init.lua (100%) rename rojo-test/build-tests/init_with_children/{ => src}/other.lua (100%) delete mode 100644 rojo-test/build-tests/plain.txt create mode 100644 rojo-test/build-tests/rbxmx_ref/default.project.json rename rojo-test/build-tests/{rbxmx_ref.rbxmx => rbxmx_ref/model.rbxmx} (100%) create mode 100644 rojo-test/serve-tests/add_folder/default.project.json rename rojo-test/{build-tests/plain_gitkeep => serve-tests/add_folder/src}/.gitkeep (100%) create mode 100644 rojo-test/serve-tests/edit_init/default.project.json rename rojo-test/serve-tests/edit_init/{ => src}/init.lua (100%) delete mode 100644 rojo-test/serve-tests/just_txt.txt delete mode 100644 rojo-test/serve-tests/move_folder_of_stuff/.gitkeep create mode 100644 rojo-test/serve-tests/move_folder_of_stuff/default.project.json rename rojo-test/serve-tests/{add_folder => move_folder_of_stuff/src}/.gitkeep (100%) create mode 100644 rojo-test/serve-tests/remove_file/default.project.json rename rojo-test/serve-tests/remove_file/{ => src}/hello.txt (100%) create mode 100644 rojo-test/serve-tests/scripts/default.project.json rename rojo-test/serve-tests/scripts/{ => src}/bar.server.lua (100%) rename rojo-test/serve-tests/scripts/{ => src}/foo.lua (100%) delete mode 100644 src/snapshots/librojo__serve_session__serve_session__change_file_in_project_after.snap delete mode 100644 src/snapshots/librojo__serve_session__serve_session__change_file_in_project_before.snap delete mode 100644 src/snapshots/librojo__serve_session__serve_session__change_file_in_project_patch.snap delete mode 100644 src/snapshots/librojo__serve_session__serve_session__change_script_meta_after.snap delete mode 100644 src/snapshots/librojo__serve_session__serve_session__change_script_meta_before.snap delete mode 100644 src/snapshots/librojo__serve_session__serve_session__change_script_meta_patch.snap delete mode 100644 src/snapshots/librojo__serve_session__serve_session__change_txt_file_after.snap delete mode 100644 src/snapshots/librojo__serve_session__serve_session__change_txt_file_before.snap delete mode 100644 src/snapshots/librojo__serve_session__serve_session__change_txt_file_patch.snap delete mode 100644 src/snapshots/librojo__serve_session__serve_session__just_folder.snap delete mode 100644 src/snapshots/librojo__serve_session__serve_session__project_with_folder.snap delete mode 100644 src/snapshots/librojo__serve_session__serve_session__script_with_meta.snap diff --git a/rojo-test/build-test-snapshots/rojo_test__build_test__rbxmx_ref.rbxmx.snap b/rojo-test/build-test-snapshots/rojo_test__build_test__rbxmx_ref.snap similarity index 100% rename from rojo-test/build-test-snapshots/rojo_test__build_test__rbxmx_ref.rbxmx.snap rename to rojo-test/build-test-snapshots/rojo_test__build_test__rbxmx_ref.snap diff --git a/rojo-test/build-tests/deep_nesting/default.project.json b/rojo-test/build-tests/deep_nesting/default.project.json new file mode 100644 index 00000000..a4768233 --- /dev/null +++ b/rojo-test/build-tests/deep_nesting/default.project.json @@ -0,0 +1,6 @@ +{ + "name": "deep_nesting", + "tree": { + "$path": "src" + } +} \ No newline at end of file diff --git a/rojo-test/build-tests/deep_nesting/level-1/level-2/level-3/.gitkeep b/rojo-test/build-tests/deep_nesting/src/level-1/level-2/level-3/.gitkeep similarity index 100% rename from rojo-test/build-tests/deep_nesting/level-1/level-2/level-3/.gitkeep rename to rojo-test/build-tests/deep_nesting/src/level-1/level-2/level-3/.gitkeep diff --git a/rojo-test/build-tests/init_with_children/default.project.json b/rojo-test/build-tests/init_with_children/default.project.json new file mode 100644 index 00000000..70d83a8b --- /dev/null +++ b/rojo-test/build-tests/init_with_children/default.project.json @@ -0,0 +1,6 @@ +{ + "name": "init_with_children", + "tree": { + "$path": "src" + } +} \ No newline at end of file diff --git a/rojo-test/build-tests/init_with_children/init.lua b/rojo-test/build-tests/init_with_children/src/init.lua similarity index 100% rename from rojo-test/build-tests/init_with_children/init.lua rename to rojo-test/build-tests/init_with_children/src/init.lua diff --git a/rojo-test/build-tests/init_with_children/other.lua b/rojo-test/build-tests/init_with_children/src/other.lua similarity index 100% rename from rojo-test/build-tests/init_with_children/other.lua rename to rojo-test/build-tests/init_with_children/src/other.lua diff --git a/rojo-test/build-tests/plain.txt b/rojo-test/build-tests/plain.txt deleted file mode 100644 index 8948f215..00000000 --- a/rojo-test/build-tests/plain.txt +++ /dev/null @@ -1 +0,0 @@ -This is a bare text file with no project. \ No newline at end of file diff --git a/rojo-test/build-tests/rbxmx_ref/default.project.json b/rojo-test/build-tests/rbxmx_ref/default.project.json new file mode 100644 index 00000000..61c7d083 --- /dev/null +++ b/rojo-test/build-tests/rbxmx_ref/default.project.json @@ -0,0 +1,6 @@ +{ + "name": "rbxmx_ref", + "tree": { + "$path": "model.rbxmx" + } +} \ No newline at end of file diff --git a/rojo-test/build-tests/rbxmx_ref.rbxmx b/rojo-test/build-tests/rbxmx_ref/model.rbxmx similarity index 100% rename from rojo-test/build-tests/rbxmx_ref.rbxmx rename to rojo-test/build-tests/rbxmx_ref/model.rbxmx diff --git a/rojo-test/serve-tests/add_folder/default.project.json b/rojo-test/serve-tests/add_folder/default.project.json new file mode 100644 index 00000000..6831b978 --- /dev/null +++ b/rojo-test/serve-tests/add_folder/default.project.json @@ -0,0 +1,6 @@ +{ + "name": "add_folder", + "tree": { + "$path": "src" + } +} \ No newline at end of file diff --git a/rojo-test/build-tests/plain_gitkeep/.gitkeep b/rojo-test/serve-tests/add_folder/src/.gitkeep similarity index 100% rename from rojo-test/build-tests/plain_gitkeep/.gitkeep rename to rojo-test/serve-tests/add_folder/src/.gitkeep diff --git a/rojo-test/serve-tests/edit_init/default.project.json b/rojo-test/serve-tests/edit_init/default.project.json new file mode 100644 index 00000000..88d3bdc6 --- /dev/null +++ b/rojo-test/serve-tests/edit_init/default.project.json @@ -0,0 +1,6 @@ +{ + "name": "edit_init", + "tree": { + "$path": "src" + } +} \ No newline at end of file diff --git a/rojo-test/serve-tests/edit_init/init.lua b/rojo-test/serve-tests/edit_init/src/init.lua similarity index 100% rename from rojo-test/serve-tests/edit_init/init.lua rename to rojo-test/serve-tests/edit_init/src/init.lua diff --git a/rojo-test/serve-tests/just_txt.txt b/rojo-test/serve-tests/just_txt.txt deleted file mode 100644 index 5dd01c17..00000000 --- a/rojo-test/serve-tests/just_txt.txt +++ /dev/null @@ -1 +0,0 @@ -Hello, world! \ No newline at end of file diff --git a/rojo-test/serve-tests/move_folder_of_stuff/.gitkeep b/rojo-test/serve-tests/move_folder_of_stuff/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/rojo-test/serve-tests/move_folder_of_stuff/default.project.json b/rojo-test/serve-tests/move_folder_of_stuff/default.project.json new file mode 100644 index 00000000..e4a6a2e9 --- /dev/null +++ b/rojo-test/serve-tests/move_folder_of_stuff/default.project.json @@ -0,0 +1,6 @@ +{ + "name": "move_folder_of_stuff", + "tree": { + "$path": "src" + } +} \ No newline at end of file diff --git a/rojo-test/serve-tests/add_folder/.gitkeep b/rojo-test/serve-tests/move_folder_of_stuff/src/.gitkeep similarity index 100% rename from rojo-test/serve-tests/add_folder/.gitkeep rename to rojo-test/serve-tests/move_folder_of_stuff/src/.gitkeep diff --git a/rojo-test/serve-tests/remove_file/default.project.json b/rojo-test/serve-tests/remove_file/default.project.json new file mode 100644 index 00000000..6055a0bf --- /dev/null +++ b/rojo-test/serve-tests/remove_file/default.project.json @@ -0,0 +1,6 @@ +{ + "name": "remove_file", + "tree": { + "$path": "src" + } +} \ No newline at end of file diff --git a/rojo-test/serve-tests/remove_file/hello.txt b/rojo-test/serve-tests/remove_file/src/hello.txt similarity index 100% rename from rojo-test/serve-tests/remove_file/hello.txt rename to rojo-test/serve-tests/remove_file/src/hello.txt diff --git a/rojo-test/serve-tests/scripts/default.project.json b/rojo-test/serve-tests/scripts/default.project.json new file mode 100644 index 00000000..52987f7d --- /dev/null +++ b/rojo-test/serve-tests/scripts/default.project.json @@ -0,0 +1,6 @@ +{ + "name": "scripts", + "tree": { + "$path": "src" + } +} \ No newline at end of file diff --git a/rojo-test/serve-tests/scripts/bar.server.lua b/rojo-test/serve-tests/scripts/src/bar.server.lua similarity index 100% rename from rojo-test/serve-tests/scripts/bar.server.lua rename to rojo-test/serve-tests/scripts/src/bar.server.lua diff --git a/rojo-test/serve-tests/scripts/foo.lua b/rojo-test/serve-tests/scripts/src/foo.lua similarity index 100% rename from rojo-test/serve-tests/scripts/foo.lua rename to rojo-test/serve-tests/scripts/src/foo.lua diff --git a/rojo-test/src/build_test.rs b/rojo-test/src/build_test.rs index a5d18467..c51cacf9 100644 --- a/rojo-test/src/build_test.rs +++ b/rojo-test/src/build_test.rs @@ -35,12 +35,12 @@ gen_build_tests! { json_model_legacy_name, module_in_folder, module_init, - plain_gitkeep, rbxm_in_folder, rbxmx_in_folder, script_meta_disabled, server_in_folder, server_init, + rbxmx_ref, txt, txt_in_folder, } @@ -52,16 +52,6 @@ gen_build_tests! { ignore_glob_spec, } -#[test] -fn build_plain_txt() { - run_build_test("plain.txt"); -} - -#[test] -fn build_rbxmx_ref() { - run_build_test("rbxmx_ref.rbxmx"); -} - fn run_build_test(test_name: &str) { let build_test_path = get_build_tests_path(); let working_dir = get_working_dir_path(); diff --git a/rojo-test/src/serve_test.rs b/rojo-test/src/serve_test.rs index 80ecae77..daac30e2 100644 --- a/rojo-test/src/serve_test.rs +++ b/rojo-test/src/serve_test.rs @@ -35,7 +35,7 @@ fn scripts() { read_response.intern_and_redact(&mut redactions, root_id) ); - fs::write(session.path().join("foo.lua"), "Updated foo!").unwrap(); + fs::write(session.path().join("src/foo.lua"), "Updated foo!").unwrap(); let subscribe_response = session.get_api_subscribe(0).unwrap(); assert_yaml_snapshot!( @@ -51,26 +51,6 @@ fn scripts() { }); } -#[test] -fn just_txt() { - run_serve_test("just_txt.txt", |session, mut redactions| { - let info = session.get_api_rojo().unwrap(); - let root_id = info.root_instance_id; - - assert_yaml_snapshot!("just_txt_info", redactions.redacted_yaml(info)); - - let read_response = session.get_api_read(root_id).unwrap(); - assert_yaml_snapshot!( - "just_txt_all", - read_response.intern_and_redact(&mut redactions, root_id) - ); - - fs::write(session.path(), "Changed content!").unwrap(); - - // TODO: Directly served files currently don't trigger changed events! - }); -} - #[test] fn add_folder() { run_serve_test("add_folder", |session, mut redactions| { @@ -85,7 +65,7 @@ fn add_folder() { read_response.intern_and_redact(&mut redactions, root_id) ); - fs::create_dir(session.path().join("my-new-folder")).unwrap(); + fs::create_dir(session.path().join("src/my-new-folder")).unwrap(); let subscribe_response = session.get_api_subscribe(0).unwrap(); assert_yaml_snapshot!( @@ -115,7 +95,7 @@ fn remove_file() { read_response.intern_and_redact(&mut redactions, root_id) ); - fs::remove_file(session.path().join("hello.txt")).unwrap(); + fs::remove_file(session.path().join("src/hello.txt")).unwrap(); let subscribe_response = session.get_api_subscribe(0).unwrap(); assert_yaml_snapshot!( @@ -145,7 +125,7 @@ fn edit_init() { read_response.intern_and_redact(&mut redactions, root_id) ); - fs::write(session.path().join("init.lua"), b"-- Edited contents").unwrap(); + fs::write(session.path().join("src/init.lua"), b"-- Edited contents").unwrap(); let subscribe_response = session.get_api_subscribe(0).unwrap(); assert_yaml_snapshot!( @@ -191,7 +171,7 @@ fn move_folder_of_stuff() { // We're hoping that this rename gets picked up as one event. This test // will fail otherwise. - fs::rename(stuff_path, session.path().join("new-stuff")).unwrap(); + fs::rename(stuff_path, session.path().join("src/new-stuff")).unwrap(); let subscribe_response = session.get_api_subscribe(0).unwrap(); assert_yaml_snapshot!( diff --git a/src/serve_session.rs b/src/serve_session.rs index 2423bf52..6263c2e0 100644 --- a/src/serve_session.rs +++ b/src/serve_session.rs @@ -47,15 +47,12 @@ pub struct ServeSession { /// diagnostics. start_time: Instant, - /// The root project for the serve session, if there was one defined. + /// The root project for the serve session. /// /// This will be defined if a folder with a `default.project.json` file was /// used for starting the serve session, or if the user specified a full /// path to a `.project.json` file. - /// - /// If `root_project` is None, values from the project should be treated as - /// their defaults. - root_project: Option, + root_project: Project, /// A randomly generated ID for this serve session. It's used to ensure that /// a client doesn't begin connecting to a different server part way through @@ -103,7 +100,9 @@ impl ServeSession { log::trace!("Starting new ServeSession at path {}", start_path.display()); log::trace!("Loading project file from {}", start_path.display()); - let root_project = Project::load_fuzzy(start_path).expect("TODO: Project load failed"); + let root_project = Project::load_fuzzy(start_path) + .expect("TODO: Project load failed") + .expect("TODO: No project was found."); let mut tree = RojoTree::new(InstancePropertiesWithMeta { properties: RbxInstanceProperties { @@ -118,14 +117,15 @@ impl ServeSession { let mut instance_context = InstanceContext::default(); - if let Some(project) = &root_project { - let rules = project.glob_ignore_paths.iter().map(|glob| PathIgnoreRule { + let rules = root_project + .glob_ignore_paths + .iter() + .map(|glob| PathIgnoreRule { glob: glob.clone(), - base_path: project.folder_location().to_path_buf(), + base_path: root_project.folder_location().to_path_buf(), }); - instance_context.add_path_ignore_rules(rules); - } + instance_context.add_path_ignore_rules(rules); log::trace!("Generating snapshot of instances from VFS"); let snapshot = snapshot_from_vfs(&instance_context, &vfs, &start_path) @@ -194,16 +194,12 @@ impl ServeSession { self.session_id } - pub fn project_name(&self) -> Option<&str> { - self.root_project - .as_ref() - .map(|project| project.name.as_str()) + pub fn project_name(&self) -> &str { + &self.root_project.name } pub fn project_port(&self) -> Option { - self.root_project - .as_ref() - .and_then(|project| project.serve_port) + self.root_project.serve_port } pub fn start_time(&self) -> Instant { @@ -211,217 +207,6 @@ impl ServeSession { } pub fn serve_place_ids(&self) -> Option<&HashSet> { - self.root_project - .as_ref() - .and_then(|project| project.serve_place_ids.as_ref()) - } -} - -/// This module is named to trick Insta into naming the resulting snapshots -/// correctly. -/// -/// See https://github.com/mitsuhiko/insta/issues/78 -#[cfg(test)] -mod serve_session { - use super::*; - - use std::{path::PathBuf, time::Duration}; - - use maplit::hashmap; - use memofs::{InMemoryFs, VfsEvent, VfsSnapshot}; - use rojo_insta_ext::RedactionMap; - use tokio::{runtime::Runtime, timer::Timeout}; - - use crate::tree_view::view_tree; - - #[test] - fn just_folder() { - let mut imfs = InMemoryFs::new(); - imfs.load_snapshot("/foo", VfsSnapshot::empty_dir()) - .unwrap(); - - let vfs = Vfs::new(imfs); - - let session = ServeSession::new(vfs, "/foo"); - - let mut rm = RedactionMap::new(); - insta::assert_yaml_snapshot!(view_tree(&session.tree(), &mut rm)); - } - - #[test] - fn project_with_folder() { - let mut imfs = InMemoryFs::new(); - imfs.load_snapshot( - "/foo", - VfsSnapshot::dir(hashmap! { - "default.project.json" => VfsSnapshot::file(r#" - { - "name": "HelloWorld", - "tree": { - "$path": "src" - } - } - "#), - "src" => VfsSnapshot::dir(hashmap! { - "hello.txt" => VfsSnapshot::file("Hello, world!"), - }), - }), - ) - .unwrap(); - - let vfs = Vfs::new(imfs); - - let session = ServeSession::new(vfs, "/foo"); - - let mut rm = RedactionMap::new(); - insta::assert_yaml_snapshot!(view_tree(&session.tree(), &mut rm)); - } - - #[test] - fn script_with_meta() { - let mut imfs = InMemoryFs::new(); - imfs.load_snapshot( - "/root", - VfsSnapshot::dir(hashmap! { - "test.lua" => VfsSnapshot::file("This is a test."), - "test.meta.json" => VfsSnapshot::file(r#"{ "ignoreUnknownInstances": true }"#), - }), - ) - .unwrap(); - - let vfs = Vfs::new(imfs); - - let session = ServeSession::new(vfs, "/root"); - - let mut rm = RedactionMap::new(); - insta::assert_yaml_snapshot!(view_tree(&session.tree(), &mut rm)); - } - - #[test] - fn change_txt_file() { - let mut imfs = InMemoryFs::new(); - imfs.load_snapshot("/foo.txt", VfsSnapshot::file("Hello!")) - .unwrap(); - - let vfs = Vfs::new(imfs.clone()); - - let session = ServeSession::new(vfs, "/foo.txt"); - - let mut rm = RedactionMap::new(); - insta::assert_yaml_snapshot!( - "change_txt_file_before", - view_tree(&session.tree(), &mut rm) - ); - - imfs.load_snapshot("/foo.txt", VfsSnapshot::file("World!")) - .unwrap(); - - let receiver = session.message_queue().subscribe_any(); - - imfs.raise_event(VfsEvent::Write(PathBuf::from("/foo.txt"))); - - let receiver = Timeout::new(receiver, Duration::from_millis(200)); - - let mut rt = Runtime::new().unwrap(); - let result = rt.block_on(receiver).unwrap(); - - insta::assert_yaml_snapshot!("change_txt_file_patch", rm.redacted_yaml(result)); - insta::assert_yaml_snapshot!("change_txt_file_after", view_tree(&session.tree(), &mut rm)); - } - - #[test] - fn change_script_meta() { - let mut imfs = InMemoryFs::new(); - imfs.load_snapshot( - "/root", - VfsSnapshot::dir(hashmap! { - "test.lua" => VfsSnapshot::file("This is a test."), - "test.meta.json" => VfsSnapshot::file(r#"{ "ignoreUnknownInstances": true }"#), - }), - ) - .unwrap(); - - let vfs = Vfs::new(imfs.clone()); - - let session = ServeSession::new(vfs, "/root"); - - let mut rm = RedactionMap::new(); - insta::assert_yaml_snapshot!( - "change_script_meta_before", - view_tree(&session.tree(), &mut rm) - ); - - imfs.load_snapshot( - "/root/test.meta.json", - VfsSnapshot::file(r#"{ "ignoreUnknownInstances": false }"#), - ) - .unwrap(); - - let receiver = session.message_queue().subscribe_any(); - - imfs.raise_event(VfsEvent::Write(PathBuf::from("/root/test.meta.json"))); - - let receiver = Timeout::new(receiver, Duration::from_millis(200)); - - let mut rt = Runtime::new().unwrap(); - let result = rt.block_on(receiver).unwrap(); - - insta::assert_yaml_snapshot!("change_script_meta_patch", rm.redacted_yaml(result)); - insta::assert_yaml_snapshot!( - "change_script_meta_after", - view_tree(&session.tree(), &mut rm) - ); - } - - #[test] - fn change_file_in_project() { - let mut imfs = InMemoryFs::new(); - imfs.load_snapshot( - "/foo", - VfsSnapshot::dir(hashmap! { - "default.project.json" => VfsSnapshot::file(r#" - { - "name": "change_file_in_project", - "tree": { - "$className": "Folder", - - "Child": { - "$path": "file.txt" - } - } - } - "#), - "file.txt" => VfsSnapshot::file("initial content"), - }), - ) - .unwrap(); - - let vfs = Vfs::new(imfs.clone()); - - let session = ServeSession::new(vfs, "/foo"); - - let mut rm = RedactionMap::new(); - insta::assert_yaml_snapshot!( - "change_file_in_project_before", - view_tree(&session.tree(), &mut rm) - ); - - imfs.load_snapshot("/foo/file.txt", VfsSnapshot::file("Changed!")) - .unwrap(); - - let receiver = session.message_queue().subscribe_any(); - - imfs.raise_event(VfsEvent::Write(PathBuf::from("/foo/file.txt"))); - - let receiver = Timeout::new(receiver, Duration::from_millis(200)); - - let mut rt = Runtime::new().unwrap(); - let result = rt.block_on(receiver).unwrap(); - - insta::assert_yaml_snapshot!("change_file_in_project_patch", rm.redacted_yaml(result)); - insta::assert_yaml_snapshot!( - "change_file_in_project_after", - view_tree(&session.tree(), &mut rm) - ); + self.root_project.serve_place_ids.as_ref() } } diff --git a/src/snapshots/librojo__serve_session__serve_session__change_file_in_project_after.snap b/src/snapshots/librojo__serve_session__serve_session__change_file_in_project_after.snap deleted file mode 100644 index 29afd767..00000000 --- a/src/snapshots/librojo__serve_session__serve_session__change_file_in_project_after.snap +++ /dev/null @@ -1,35 +0,0 @@ ---- -source: src/serve_session.rs -expression: "view_tree(&session.tree(), &mut redactions)" ---- -id: id-1 -name: change_file_in_project -class_name: Folder -properties: {} -metadata: - ignore_unknown_instances: true - instigating_source: - Path: /foo/default.project.json - relevant_paths: - - /foo/default.project.json - context: {} -children: - - id: id-2 - name: Child - class_name: StringValue - properties: - Value: - Type: String - Value: Changed! - metadata: - ignore_unknown_instances: false - instigating_source: - ProjectNode: - - /foo - - Child - - $path: file.txt - relevant_paths: - - /foo/file.txt - - /foo/file.meta.json - context: {} - children: [] diff --git a/src/snapshots/librojo__serve_session__serve_session__change_file_in_project_before.snap b/src/snapshots/librojo__serve_session__serve_session__change_file_in_project_before.snap deleted file mode 100644 index 9b20d87f..00000000 --- a/src/snapshots/librojo__serve_session__serve_session__change_file_in_project_before.snap +++ /dev/null @@ -1,35 +0,0 @@ ---- -source: src/serve_session.rs -expression: "view_tree(&session.tree(), &mut redactions)" ---- -id: id-1 -name: change_file_in_project -class_name: Folder -properties: {} -metadata: - ignore_unknown_instances: true - instigating_source: - Path: /foo/default.project.json - relevant_paths: - - /foo/default.project.json - context: {} -children: - - id: id-2 - name: Child - class_name: StringValue - properties: - Value: - Type: String - Value: initial content - metadata: - ignore_unknown_instances: false - instigating_source: - ProjectNode: - - /foo - - Child - - $path: file.txt - relevant_paths: - - /foo/file.txt - - /foo/file.meta.json - context: {} - children: [] diff --git a/src/snapshots/librojo__serve_session__serve_session__change_file_in_project_patch.snap b/src/snapshots/librojo__serve_session__serve_session__change_file_in_project_patch.snap deleted file mode 100644 index 062181c5..00000000 --- a/src/snapshots/librojo__serve_session__serve_session__change_file_in_project_patch.snap +++ /dev/null @@ -1,16 +0,0 @@ ---- -source: src/serve_session.rs -expression: redactions.redacted_yaml(result) ---- -- 1 -- - removed: [] - added: [] - updated: - - id: id-2 - changed_name: ~ - changed_class_name: ~ - changed_properties: - Value: - Type: String - Value: Changed! - changed_metadata: ~ diff --git a/src/snapshots/librojo__serve_session__serve_session__change_script_meta_after.snap b/src/snapshots/librojo__serve_session__serve_session__change_script_meta_after.snap deleted file mode 100644 index c9cd47a1..00000000 --- a/src/snapshots/librojo__serve_session__serve_session__change_script_meta_after.snap +++ /dev/null @@ -1,36 +0,0 @@ ---- -source: src/serve_session.rs -expression: "view_tree(&session.tree(), &mut redactions)" ---- -id: id-1 -name: root -class_name: Folder -properties: {} -metadata: - ignore_unknown_instances: false - instigating_source: - Path: /root - relevant_paths: - - /root - - /root/init.meta.json - - /root/init.lua - - /root/init.server.lua - - /root/init.client.lua - context: {} -children: - - id: id-2 - name: test - class_name: ModuleScript - properties: - Source: - Type: String - Value: This is a test. - metadata: - ignore_unknown_instances: false - instigating_source: - Path: /root/test.lua - relevant_paths: - - /root/test.lua - - /root/test.meta.json - context: {} - children: [] diff --git a/src/snapshots/librojo__serve_session__serve_session__change_script_meta_before.snap b/src/snapshots/librojo__serve_session__serve_session__change_script_meta_before.snap deleted file mode 100644 index 21e575f1..00000000 --- a/src/snapshots/librojo__serve_session__serve_session__change_script_meta_before.snap +++ /dev/null @@ -1,36 +0,0 @@ ---- -source: src/serve_session.rs -expression: "view_tree(&session.tree(), &mut redactions)" ---- -id: id-1 -name: root -class_name: Folder -properties: {} -metadata: - ignore_unknown_instances: false - instigating_source: - Path: /root - relevant_paths: - - /root - - /root/init.meta.json - - /root/init.lua - - /root/init.server.lua - - /root/init.client.lua - context: {} -children: - - id: id-2 - name: test - class_name: ModuleScript - properties: - Source: - Type: String - Value: This is a test. - metadata: - ignore_unknown_instances: true - instigating_source: - Path: /root/test.lua - relevant_paths: - - /root/test.lua - - /root/test.meta.json - context: {} - children: [] diff --git a/src/snapshots/librojo__serve_session__serve_session__change_script_meta_patch.snap b/src/snapshots/librojo__serve_session__serve_session__change_script_meta_patch.snap deleted file mode 100644 index abc41b3a..00000000 --- a/src/snapshots/librojo__serve_session__serve_session__change_script_meta_patch.snap +++ /dev/null @@ -1,20 +0,0 @@ ---- -source: src/serve_session.rs -expression: redactions.redacted_yaml(changes) ---- -- 1 -- - removed: [] - added: [] - updated: - - id: id-2 - changed_name: ~ - changed_class_name: ~ - changed_properties: {} - changed_metadata: - ignore_unknown_instances: false - instigating_source: - Path: /root/test.lua - relevant_paths: - - /root/test.lua - - /root/test.meta.json - context: {} diff --git a/src/snapshots/librojo__serve_session__serve_session__change_txt_file_after.snap b/src/snapshots/librojo__serve_session__serve_session__change_txt_file_after.snap deleted file mode 100644 index 4ff19d78..00000000 --- a/src/snapshots/librojo__serve_session__serve_session__change_txt_file_after.snap +++ /dev/null @@ -1,20 +0,0 @@ ---- -source: src/serve_session.rs -expression: "view_tree(&session.tree(), &mut redactions)" ---- -id: id-1 -name: foo -class_name: StringValue -properties: - Value: - Type: String - Value: World! -metadata: - ignore_unknown_instances: false - instigating_source: - Path: /foo.txt - relevant_paths: - - /foo.txt - - /foo.meta.json - context: {} -children: [] diff --git a/src/snapshots/librojo__serve_session__serve_session__change_txt_file_before.snap b/src/snapshots/librojo__serve_session__serve_session__change_txt_file_before.snap deleted file mode 100644 index e3324a6a..00000000 --- a/src/snapshots/librojo__serve_session__serve_session__change_txt_file_before.snap +++ /dev/null @@ -1,20 +0,0 @@ ---- -source: src/serve_session.rs -expression: "view_tree(&session.tree(), &mut redactions)" ---- -id: id-1 -name: foo -class_name: StringValue -properties: - Value: - Type: String - Value: Hello! -metadata: - ignore_unknown_instances: false - instigating_source: - Path: /foo.txt - relevant_paths: - - /foo.txt - - /foo.meta.json - context: {} -children: [] diff --git a/src/snapshots/librojo__serve_session__serve_session__change_txt_file_patch.snap b/src/snapshots/librojo__serve_session__serve_session__change_txt_file_patch.snap deleted file mode 100644 index 5e194e99..00000000 --- a/src/snapshots/librojo__serve_session__serve_session__change_txt_file_patch.snap +++ /dev/null @@ -1,16 +0,0 @@ ---- -source: src/serve_session.rs -expression: redactions.redacted_yaml(result) ---- -- 1 -- - removed: [] - added: [] - updated: - - id: id-1 - changed_name: ~ - changed_class_name: ~ - changed_properties: - Value: - Type: String - Value: World! - changed_metadata: ~ diff --git a/src/snapshots/librojo__serve_session__serve_session__just_folder.snap b/src/snapshots/librojo__serve_session__serve_session__just_folder.snap deleted file mode 100644 index 5851d3f2..00000000 --- a/src/snapshots/librojo__serve_session__serve_session__just_folder.snap +++ /dev/null @@ -1,20 +0,0 @@ ---- -source: src/serve_session.rs -expression: "view_tree(&session.tree(), &mut rm)" ---- -id: id-1 -name: foo -class_name: Folder -properties: {} -metadata: - ignore_unknown_instances: false - instigating_source: - Path: /foo - relevant_paths: - - /foo - - /foo/init.meta.json - - /foo/init.lua - - /foo/init.server.lua - - /foo/init.client.lua - context: {} -children: [] diff --git a/src/snapshots/librojo__serve_session__serve_session__project_with_folder.snap b/src/snapshots/librojo__serve_session__serve_session__project_with_folder.snap deleted file mode 100644 index c6a3a4b2..00000000 --- a/src/snapshots/librojo__serve_session__serve_session__project_with_folder.snap +++ /dev/null @@ -1,37 +0,0 @@ ---- -source: src/serve_session.rs -expression: "view_tree(&session.tree(), &mut rm)" ---- -id: id-1 -name: HelloWorld -class_name: Folder -properties: {} -metadata: - ignore_unknown_instances: false - instigating_source: - Path: /foo/default.project.json - relevant_paths: - - /foo/src - - /foo/src/init.meta.json - - /foo/src/init.lua - - /foo/src/init.server.lua - - /foo/src/init.client.lua - - /foo/default.project.json - context: {} -children: - - id: id-2 - name: hello - class_name: StringValue - properties: - Value: - Type: String - Value: "Hello, world!" - metadata: - ignore_unknown_instances: false - instigating_source: - Path: /foo/src/hello.txt - relevant_paths: - - /foo/src/hello.txt - - /foo/src/hello.meta.json - context: {} - children: [] diff --git a/src/snapshots/librojo__serve_session__serve_session__script_with_meta.snap b/src/snapshots/librojo__serve_session__serve_session__script_with_meta.snap deleted file mode 100644 index 6542fa39..00000000 --- a/src/snapshots/librojo__serve_session__serve_session__script_with_meta.snap +++ /dev/null @@ -1,36 +0,0 @@ ---- -source: src/serve_session.rs -expression: "view_tree(&session.tree(), &mut rm)" ---- -id: id-1 -name: root -class_name: Folder -properties: {} -metadata: - ignore_unknown_instances: false - instigating_source: - Path: /root - relevant_paths: - - /root - - /root/init.meta.json - - /root/init.lua - - /root/init.server.lua - - /root/init.client.lua - context: {} -children: - - id: id-2 - name: test - class_name: ModuleScript - properties: - Source: - Type: String - Value: This is a test. - metadata: - ignore_unknown_instances: true - instigating_source: - Path: /root/test.lua - relevant_paths: - - /root/test.lua - - /root/test.meta.json - context: {} - children: [] diff --git a/src/web/ui.rs b/src/web/ui.rs index 50fe1df4..a3705e06 100644 --- a/src/web/ui.rs +++ b/src/web/ui.rs @@ -233,7 +233,7 @@ impl UiService { } fn normal_page<'a>(&'a self, body: HtmlContent<'a>) -> HtmlContent<'a> { - let project_name = self.serve_session.project_name().unwrap_or(""); + let project_name = self.serve_session.project_name(); let uptime = { let elapsed = self.serve_session.start_time().elapsed();