mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-11-22 12:54:26 +01:00
Dump tests
This commit is contained in:
parent
da02a9cf32
commit
dd6519b64f
@ -210,6 +210,7 @@ pub(crate) mod test {
|
|||||||
use big_s::S;
|
use big_s::S;
|
||||||
use maplit::{btreemap, btreeset};
|
use maplit::{btreemap, btreeset};
|
||||||
use meilisearch_types::facet_values_sort::FacetValuesSort;
|
use meilisearch_types::facet_values_sort::FacetValuesSort;
|
||||||
|
use meilisearch_types::features::RuntimeTogglableFeatures;
|
||||||
use meilisearch_types::index_uid_pattern::IndexUidPattern;
|
use meilisearch_types::index_uid_pattern::IndexUidPattern;
|
||||||
use meilisearch_types::keys::{Action, Key};
|
use meilisearch_types::keys::{Action, Key};
|
||||||
use meilisearch_types::milli;
|
use meilisearch_types::milli;
|
||||||
@ -418,7 +419,10 @@ pub(crate) mod test {
|
|||||||
}
|
}
|
||||||
keys.flush().unwrap();
|
keys.flush().unwrap();
|
||||||
|
|
||||||
// ========== TODO: create features here
|
// ========== experimental features
|
||||||
|
let features = create_test_features();
|
||||||
|
|
||||||
|
dump.create_experimental_features(features).unwrap();
|
||||||
|
|
||||||
// create the dump
|
// create the dump
|
||||||
let mut file = tempfile::tempfile().unwrap();
|
let mut file = tempfile::tempfile().unwrap();
|
||||||
@ -428,6 +432,10 @@ pub(crate) mod test {
|
|||||||
file
|
file
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn create_test_features() -> RuntimeTogglableFeatures {
|
||||||
|
RuntimeTogglableFeatures { vector_store: true, ..Default::default() }
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_creating_and_read_dump() {
|
fn test_creating_and_read_dump() {
|
||||||
let mut file = create_test_dump();
|
let mut file = create_test_dump();
|
||||||
@ -472,5 +480,9 @@ pub(crate) mod test {
|
|||||||
for (key, expected) in dump.keys().unwrap().zip(create_test_api_keys()) {
|
for (key, expected) in dump.keys().unwrap().zip(create_test_api_keys()) {
|
||||||
assert_eq!(key.unwrap(), expected);
|
assert_eq!(key.unwrap(), expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ==== checking the features
|
||||||
|
let expected = create_test_features();
|
||||||
|
assert_eq!(dump.features().unwrap().unwrap(), expected);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -195,8 +195,53 @@ pub(crate) mod test {
|
|||||||
use meili_snap::insta;
|
use meili_snap::insta;
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
use crate::reader::v6::RuntimeTogglableFeatures;
|
||||||
|
|
||||||
// TODO: add `features` to tests
|
#[test]
|
||||||
|
fn import_dump_v6_experimental() {
|
||||||
|
let dump = File::open("tests/assets/v6-with-experimental.dump").unwrap();
|
||||||
|
let mut dump = DumpReader::open(dump).unwrap();
|
||||||
|
|
||||||
|
// top level infos
|
||||||
|
insta::assert_display_snapshot!(dump.date().unwrap(), @"2023-07-06 7:10:27.21958 +00:00:00");
|
||||||
|
insta::assert_debug_snapshot!(dump.instance_uid().unwrap(), @"None");
|
||||||
|
|
||||||
|
// tasks
|
||||||
|
let tasks = dump.tasks().unwrap().collect::<Result<Vec<_>>>().unwrap();
|
||||||
|
let (tasks, update_files): (Vec<_>, Vec<_>) = tasks.into_iter().unzip();
|
||||||
|
meili_snap::snapshot_hash!(meili_snap::json_string!(tasks), @"d45cd8571703e58ae53c7bd7ce3f5c22");
|
||||||
|
assert_eq!(update_files.len(), 2);
|
||||||
|
assert!(update_files[0].is_none()); // the dump creation
|
||||||
|
assert!(update_files[1].is_none()); // the processed document addition
|
||||||
|
|
||||||
|
// keys
|
||||||
|
let keys = dump.keys().unwrap().collect::<Result<Vec<_>>>().unwrap();
|
||||||
|
meili_snap::snapshot_hash!(meili_snap::json_string!(keys), @"13c2da155e9729c2344688cab29af71d");
|
||||||
|
|
||||||
|
// indexes
|
||||||
|
let mut indexes = dump.indexes().unwrap().collect::<Result<Vec<_>>>().unwrap();
|
||||||
|
// the index are not ordered in any way by default
|
||||||
|
indexes.sort_by_key(|index| index.metadata().uid.to_string());
|
||||||
|
|
||||||
|
let mut test = indexes.pop().unwrap();
|
||||||
|
assert!(indexes.is_empty());
|
||||||
|
|
||||||
|
insta::assert_json_snapshot!(test.metadata(), @r###"
|
||||||
|
{
|
||||||
|
"uid": "test",
|
||||||
|
"primaryKey": "id",
|
||||||
|
"createdAt": "2023-07-06T07:07:41.364694Z",
|
||||||
|
"updatedAt": "2023-07-06T07:07:41.396114Z"
|
||||||
|
}
|
||||||
|
"###);
|
||||||
|
|
||||||
|
assert_eq!(test.documents().unwrap().count(), 1);
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
dump.features().unwrap().unwrap(),
|
||||||
|
RuntimeTogglableFeatures { vector_store: true, ..Default::default() }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn import_dump_v5() {
|
fn import_dump_v5() {
|
||||||
@ -274,6 +319,8 @@ pub(crate) mod test {
|
|||||||
let documents = spells.documents().unwrap().collect::<Result<Vec<_>>>().unwrap();
|
let documents = spells.documents().unwrap().collect::<Result<Vec<_>>>().unwrap();
|
||||||
assert_eq!(documents.len(), 10);
|
assert_eq!(documents.len(), 10);
|
||||||
meili_snap::snapshot_hash!(format!("{:#?}", documents), @"235016433dd04262c7f2da01d1e808ce");
|
meili_snap::snapshot_hash!(format!("{:#?}", documents), @"235016433dd04262c7f2da01d1e808ce");
|
||||||
|
|
||||||
|
assert_eq!(dump.features().unwrap(), None);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -292,6 +292,7 @@ pub(crate) mod test {
|
|||||||
│ ├---- update_files/
|
│ ├---- update_files/
|
||||||
│ │ └---- 1.jsonl
|
│ │ └---- 1.jsonl
|
||||||
│ └---- queue.jsonl
|
│ └---- queue.jsonl
|
||||||
|
├---- experimental-features.json
|
||||||
├---- instance_uid.uuid
|
├---- instance_uid.uuid
|
||||||
├---- keys.jsonl
|
├---- keys.jsonl
|
||||||
└---- metadata.json
|
└---- metadata.json
|
||||||
|
BIN
dump/tests/assets/v6-with-experimental.dump
Normal file
BIN
dump/tests/assets/v6-with-experimental.dump
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user