MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / test_del_view

Function test_del_view

atomic-core/src/pristine/txn/write/tests.rs:152–207  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

150
151 #[test]
152 fn test_del_view() {
153 let dir = tempdir().unwrap();
154 let db_path = dir.path().join("pristine");
155 let pristine = Pristine::open(&db_path).unwrap();
156
157 // Create a shared parent and a draft view with some changes.
158 // del_view only works on Draft views (Shared views are permanent).
159 {
160 let mut txn = pristine.write_txn().unwrap();
161
162 let parent = txn.open_or_create_view("parent").unwrap();
163 let mut view = txn
164 .create_view("to-delete", ViewScope::Draft, Some(parent.id))
165 .unwrap();
166 assert_eq!(view.name, "to-delete");
167
168 // Add some changes
169 let hash1 = Hash::of(b"change 1");
170 let hash2 = Hash::of(b"change 2");
171 let change_id1 = txn.register_change(&hash1).unwrap();
172 let change_id2 = txn.register_change(&hash2).unwrap();
173
174 txn.put_change(&mut view, change_id1, &hash1).unwrap();
175 txn.put_change(&mut view, change_id2, &hash2).unwrap();
176 txn.update_view(&view).unwrap();
177
178 assert_eq!(view.change_count, 2);
179
180 // Verify view exists
181 let views = txn.list_views().unwrap();
182 assert!(views.contains(&"to-delete".to_string()));
183
184 txn.commit().unwrap();
185 }
186
187 // Delete the view
188 {
189 let mut txn = pristine.write_txn().unwrap();
190
191 let view = txn.get_view("to-delete").unwrap().unwrap();
192 txn.del_view(&view).unwrap();
193
194 txn.commit().unwrap();
195 }
196
197 // Verify view is gone
198 {
199 let txn = pristine.read_txn().unwrap();
200
201 let view = txn.get_view("to-delete").unwrap();
202 assert!(view.is_none());
203
204 let views = txn.list_views().unwrap();
205 assert!(!views.contains(&"to-delete".to_string()));
206 }
207 }
208
209 #[test]

Callers

nothing calls this directly

Calls 13

write_txnMethod · 0.80
open_or_create_viewMethod · 0.80
register_changeMethod · 0.80
put_changeMethod · 0.80
update_viewMethod · 0.80
commitMethod · 0.80
del_viewMethod · 0.80
read_txnMethod · 0.80
unwrapMethod · 0.45
pathMethod · 0.45
create_viewMethod · 0.45
list_viewsMethod · 0.45

Tested by

no test coverage detected