diff --git a/src/snapshot_middleware/dir.rs b/src/snapshot_middleware/dir.rs index 7d1bed84..63303717 100644 --- a/src/snapshot_middleware/dir.rs +++ b/src/snapshot_middleware/dir.rs @@ -47,11 +47,22 @@ impl SnapshotMiddleware for SnapshotDir { let meta_path = entry.path().join("init.meta.json"); + let relevant_paths = vec![ + entry.path().to_path_buf(), + meta_path.clone(), + // TODO: We shouldn't need to know about Lua existing in this + // middleware. Should we figure out a way for that function to add + // relevant paths to this middleware? + entry.path().join("init.lua"), + entry.path().join("init.server.lua"), + entry.path().join("init.client.lua"), + ]; + let mut snapshot = InstanceSnapshot { snapshot_id: None, metadata: InstanceMetadata { instigating_source: Some(entry.path().to_path_buf().into()), - relevant_paths: vec![entry.path().to_path_buf(), meta_path.clone()], + relevant_paths, ..Default::default() }, name: Cow::Owned(instance_name), diff --git a/src/snapshot_middleware/lua.rs b/src/snapshot_middleware/lua.rs index abeb5773..d5239cb3 100644 --- a/src/snapshot_middleware/lua.rs +++ b/src/snapshot_middleware/lua.rs @@ -204,6 +204,24 @@ mod test { assert_yaml_snapshot!(instance_snapshot); } + #[test] + fn init_module_from_vfs() { + let mut vfs = Vfs::new(NoopFetcher); + let dir = VfsSnapshot::dir(hashmap! { + "init.lua" => VfsSnapshot::file("Hello!"), + }); + + vfs.debug_load_snapshot("/root", dir); + + let entry = vfs.get("/root").unwrap(); + let instance_snapshot = + SnapshotLua::from_vfs(&mut InstanceSnapshotContext::default(), &mut vfs, &entry) + .unwrap() + .unwrap(); + + assert_yaml_snapshot!(instance_snapshot); + } + #[test] fn module_with_meta() { let mut vfs = Vfs::new(NoopFetcher); diff --git a/src/snapshot_middleware/snapshots/test__empty_folder.snap b/src/snapshot_middleware/snapshots/test__empty_folder.snap index 8001ff69..8728c624 100644 --- a/src/snapshot_middleware/snapshots/test__empty_folder.snap +++ b/src/snapshot_middleware/snapshots/test__empty_folder.snap @@ -10,6 +10,9 @@ metadata: relevant_paths: - /foo - /foo/init.meta.json + - /foo/init.lua + - /foo/init.server.lua + - /foo/init.client.lua name: foo class_name: Folder properties: {} diff --git a/src/snapshot_middleware/snapshots/test__folder_in_folder.snap b/src/snapshot_middleware/snapshots/test__folder_in_folder.snap index 01c6b288..0f0af127 100644 --- a/src/snapshot_middleware/snapshots/test__folder_in_folder.snap +++ b/src/snapshot_middleware/snapshots/test__folder_in_folder.snap @@ -10,6 +10,9 @@ metadata: relevant_paths: - /foo - /foo/init.meta.json + - /foo/init.lua + - /foo/init.server.lua + - /foo/init.client.lua name: foo class_name: Folder properties: {} @@ -22,6 +25,9 @@ children: relevant_paths: - /foo/Child - /foo/Child/init.meta.json + - /foo/Child/init.lua + - /foo/Child/init.server.lua + - /foo/Child/init.client.lua name: Child class_name: Folder properties: {} diff --git a/src/snapshot_middleware/snapshots/test__init_module_from_vfs.snap b/src/snapshot_middleware/snapshots/test__init_module_from_vfs.snap new file mode 100644 index 00000000..9321a249 --- /dev/null +++ b/src/snapshot_middleware/snapshots/test__init_module_from_vfs.snap @@ -0,0 +1,22 @@ +--- +source: src/snapshot_middleware/lua.rs +expression: instance_snapshot +--- +snapshot_id: ~ +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 +name: root +class_name: ModuleScript +properties: + Source: + Type: String + Value: Hello! +children: [] diff --git a/src/snapshots/serve_session__change_script_meta_after.snap b/src/snapshots/serve_session__change_script_meta_after.snap index 386be8bf..02dd0fbe 100644 --- a/src/snapshots/serve_session__change_script_meta_after.snap +++ b/src/snapshots/serve_session__change_script_meta_after.snap @@ -13,6 +13,9 @@ metadata: relevant_paths: - /root - /root/init.meta.json + - /root/init.lua + - /root/init.server.lua + - /root/init.client.lua children: - id: id-2 name: test diff --git a/src/snapshots/serve_session__change_script_meta_before.snap b/src/snapshots/serve_session__change_script_meta_before.snap index 9acef5ee..649ac820 100644 --- a/src/snapshots/serve_session__change_script_meta_before.snap +++ b/src/snapshots/serve_session__change_script_meta_before.snap @@ -13,6 +13,9 @@ metadata: relevant_paths: - /root - /root/init.meta.json + - /root/init.lua + - /root/init.server.lua + - /root/init.client.lua children: - id: id-2 name: test diff --git a/src/snapshots/serve_session__just_folder.snap b/src/snapshots/serve_session__just_folder.snap index 584509b8..1817c3e4 100644 --- a/src/snapshots/serve_session__just_folder.snap +++ b/src/snapshots/serve_session__just_folder.snap @@ -13,4 +13,7 @@ metadata: relevant_paths: - /foo - /foo/init.meta.json + - /foo/init.lua + - /foo/init.server.lua + - /foo/init.client.lua children: [] diff --git a/src/snapshots/serve_session__project_with_folder.snap b/src/snapshots/serve_session__project_with_folder.snap index ae1914d6..598522e8 100644 --- a/src/snapshots/serve_session__project_with_folder.snap +++ b/src/snapshots/serve_session__project_with_folder.snap @@ -13,6 +13,9 @@ metadata: 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 children: - id: id-2 diff --git a/src/snapshots/serve_session__script_with_meta.snap b/src/snapshots/serve_session__script_with_meta.snap index 016006b9..9e2a4dcf 100644 --- a/src/snapshots/serve_session__script_with_meta.snap +++ b/src/snapshots/serve_session__script_with_meta.snap @@ -13,6 +13,9 @@ metadata: relevant_paths: - /root - /root/init.meta.json + - /root/init.lua + - /root/init.server.lua + - /root/init.client.lua children: - id: id-2 name: test