From 3bd8549f412d7acf9f14e000809e59e33e69a0ea Mon Sep 17 00:00:00 2001 From: Lucien Greathouse Date: Tue, 8 Oct 2019 13:57:40 -0700 Subject: [PATCH] Add ServeSession test for project with folder --- src/serve_session.rs | 28 +++++++++++++++++ .../serve_session__project_with_folder.snap | 30 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 src/snapshots/serve_session__project_with_folder.snap diff --git a/src/serve_session.rs b/src/serve_session.rs index 4f6764ea..969e7cbf 100644 --- a/src/serve_session.rs +++ b/src/serve_session.rs @@ -197,6 +197,7 @@ mod serve_session { use std::{path::PathBuf, time::Duration}; use insta::assert_yaml_snapshot; + use maplit::hashmap; use rojo_insta_ext::RedactionMap; use tokio::{runtime::Runtime, timer::Timeout}; @@ -217,6 +218,33 @@ mod serve_session { assert_yaml_snapshot!(view_tree(&session.tree(), &mut rm)); } + #[test] + fn project_with_folder() { + let mut imfs = Imfs::new(NoopFetcher); + + imfs.debug_load_snapshot( + "/foo", + ImfsSnapshot::dir(hashmap! { + "default.project.json" => ImfsSnapshot::file(r#" + { + "name": "HelloWorld", + "tree": { + "$path": "src" + } + } + "#), + "src" => ImfsSnapshot::dir(hashmap! { + "hello.txt" => ImfsSnapshot::file("Hello, world!"), + }), + }), + ); + + let session = ServeSession::new(imfs, "/foo", None); + + let mut rm = RedactionMap::new(); + assert_yaml_snapshot!(view_tree(&session.tree(), &mut rm)); + } + #[test] fn change_txt_file() { let (state, fetcher) = TestFetcher::new(); diff --git a/src/snapshots/serve_session__project_with_folder.snap b/src/snapshots/serve_session__project_with_folder.snap new file mode 100644 index 00000000..6b91f347 --- /dev/null +++ b/src/snapshots/serve_session__project_with_folder.snap @@ -0,0 +1,30 @@ +--- +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/default.project.json +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 + children: []