Skip to content

Commit d82ae1c

Browse files
authored
Add indexing tests on schemas / collection id duplication (#828)
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
1 parent 4f378bb commit d82ae1c

4 files changed

Lines changed: 230 additions & 0 deletions

File tree

test/cli/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@ if(ONE_INDEX)
9898
sourcemeta_one_test_cli(common index string-directory-overlap)
9999
sourcemeta_one_test_cli(common index non-existent-collection-directory)
100100
sourcemeta_one_test_cli(common index collection-path-is-file)
101+
sourcemeta_one_test_cli(common index duplicate-path-filename-matches-key)
102+
sourcemeta_one_test_cli(common index duplicate-path-id-matches-key)
103+
sourcemeta_one_test_cli(common index duplicate-path-subdirectory-matches-key)
101104
sourcemeta_one_test_cli(common index rebuild-zero-to-one)
102105
sourcemeta_one_test_cli(common index rebuild-one-to-zero)
103106
sourcemeta_one_test_cli(common index resolve-schema)
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
#!/bin/sh
2+
3+
set -o errexit
4+
set -o nounset
5+
6+
TMP="$(mktemp -d)"
7+
clean() { rm -rf "$TMP"; }
8+
trap clean EXIT
9+
10+
mkdir -p "$TMP/schemas/foo"
11+
12+
cat << 'EOF' > "$TMP/schemas/foo/foo.json"
13+
{
14+
"$schema": "https://json-schema.org/draft/2020-12/schema",
15+
"type": "object"
16+
}
17+
EOF
18+
19+
cat << EOF > "$TMP/one.json"
20+
{
21+
"url": "http://localhost:8000",
22+
"contents": {
23+
"foo": {
24+
"path": "./schemas/foo"
25+
}
26+
}
27+
}
28+
EOF
29+
30+
"$1" "$TMP/one.json" "$TMP/output"
31+
32+
cd "$TMP/output"
33+
find . -mindepth 1 | LC_ALL=C sort > "$TMP/manifest.txt"
34+
cd - > /dev/null
35+
36+
cat << 'EOF' > "$TMP/expected.txt"
37+
./configuration.json
38+
./explorer
39+
./explorer/%
40+
./explorer/%/404.metapack
41+
./explorer/%/directory-html.metapack
42+
./explorer/%/directory.metapack
43+
./explorer/%/search.metapack
44+
./explorer/foo
45+
./explorer/foo/%
46+
./explorer/foo/%/directory-html.metapack
47+
./explorer/foo/%/directory.metapack
48+
./explorer/foo/foo
49+
./explorer/foo/foo/%
50+
./explorer/foo/foo/%/schema-html.metapack
51+
./explorer/foo/foo/%/schema.metapack
52+
./routes.bin
53+
./schemas
54+
./schemas/foo
55+
./schemas/foo/foo
56+
./schemas/foo/foo/%
57+
./schemas/foo/foo/%/blaze-exhaustive.metapack
58+
./schemas/foo/foo/%/blaze-fast.metapack
59+
./schemas/foo/foo/%/bundle.metapack
60+
./schemas/foo/foo/%/dependencies.metapack
61+
./schemas/foo/foo/%/dependents.metapack
62+
./schemas/foo/foo/%/editor.metapack
63+
./schemas/foo/foo/%/health.metapack
64+
./schemas/foo/foo/%/locations.metapack
65+
./schemas/foo/foo/%/positions.metapack
66+
./schemas/foo/foo/%/schema.metapack
67+
./schemas/foo/foo/%/stats.metapack
68+
./state.bin
69+
./version.json
70+
EOF
71+
72+
diff "$TMP/manifest.txt" "$TMP/expected.txt"
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
#!/bin/sh
2+
3+
set -o errexit
4+
set -o nounset
5+
6+
TMP="$(mktemp -d)"
7+
clean() { rm -rf "$TMP"; }
8+
trap clean EXIT
9+
10+
mkdir -p "$TMP/schemas/bar"
11+
12+
cat << 'EOF' > "$TMP/schemas/bar/test.json"
13+
{
14+
"$schema": "https://json-schema.org/draft/2020-12/schema",
15+
"$id": "http://localhost:8000/bar/test",
16+
"type": "string"
17+
}
18+
EOF
19+
20+
cat << EOF > "$TMP/one.json"
21+
{
22+
"url": "http://localhost:8000",
23+
"contents": {
24+
"bar": {
25+
"path": "./schemas/bar"
26+
}
27+
}
28+
}
29+
EOF
30+
31+
"$1" "$TMP/one.json" "$TMP/output"
32+
33+
cd "$TMP/output"
34+
find . -mindepth 1 | LC_ALL=C sort > "$TMP/manifest.txt"
35+
cd - > /dev/null
36+
37+
cat << 'EOF' > "$TMP/expected.txt"
38+
./configuration.json
39+
./explorer
40+
./explorer/%
41+
./explorer/%/404.metapack
42+
./explorer/%/directory-html.metapack
43+
./explorer/%/directory.metapack
44+
./explorer/%/search.metapack
45+
./explorer/bar
46+
./explorer/bar/%
47+
./explorer/bar/%/directory-html.metapack
48+
./explorer/bar/%/directory.metapack
49+
./explorer/bar/bar
50+
./explorer/bar/bar/%
51+
./explorer/bar/bar/%/directory-html.metapack
52+
./explorer/bar/bar/%/directory.metapack
53+
./explorer/bar/bar/test
54+
./explorer/bar/bar/test/%
55+
./explorer/bar/bar/test/%/schema-html.metapack
56+
./explorer/bar/bar/test/%/schema.metapack
57+
./routes.bin
58+
./schemas
59+
./schemas/bar
60+
./schemas/bar/bar
61+
./schemas/bar/bar/test
62+
./schemas/bar/bar/test/%
63+
./schemas/bar/bar/test/%/blaze-exhaustive.metapack
64+
./schemas/bar/bar/test/%/blaze-fast.metapack
65+
./schemas/bar/bar/test/%/bundle.metapack
66+
./schemas/bar/bar/test/%/dependencies.metapack
67+
./schemas/bar/bar/test/%/dependents.metapack
68+
./schemas/bar/bar/test/%/editor.metapack
69+
./schemas/bar/bar/test/%/health.metapack
70+
./schemas/bar/bar/test/%/locations.metapack
71+
./schemas/bar/bar/test/%/positions.metapack
72+
./schemas/bar/bar/test/%/schema.metapack
73+
./schemas/bar/bar/test/%/stats.metapack
74+
./state.bin
75+
./version.json
76+
EOF
77+
78+
diff "$TMP/manifest.txt" "$TMP/expected.txt"
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
#!/bin/sh
2+
3+
set -o errexit
4+
set -o nounset
5+
6+
TMP="$(mktemp -d)"
7+
clean() { rm -rf "$TMP"; }
8+
trap clean EXIT
9+
10+
mkdir -p "$TMP/schemas/baz/baz"
11+
12+
cat << 'EOF' > "$TMP/schemas/baz/baz/test.json"
13+
{
14+
"$schema": "https://json-schema.org/draft/2020-12/schema",
15+
"type": "array"
16+
}
17+
EOF
18+
19+
cat << EOF > "$TMP/one.json"
20+
{
21+
"url": "http://localhost:8000",
22+
"contents": {
23+
"baz": {
24+
"path": "./schemas/baz"
25+
}
26+
}
27+
}
28+
EOF
29+
30+
"$1" "$TMP/one.json" "$TMP/output"
31+
32+
cd "$TMP/output"
33+
find . -mindepth 1 | LC_ALL=C sort > "$TMP/manifest.txt"
34+
cd - > /dev/null
35+
36+
cat << 'EOF' > "$TMP/expected.txt"
37+
./configuration.json
38+
./explorer
39+
./explorer/%
40+
./explorer/%/404.metapack
41+
./explorer/%/directory-html.metapack
42+
./explorer/%/directory.metapack
43+
./explorer/%/search.metapack
44+
./explorer/baz
45+
./explorer/baz/%
46+
./explorer/baz/%/directory-html.metapack
47+
./explorer/baz/%/directory.metapack
48+
./explorer/baz/baz
49+
./explorer/baz/baz/%
50+
./explorer/baz/baz/%/directory-html.metapack
51+
./explorer/baz/baz/%/directory.metapack
52+
./explorer/baz/baz/test
53+
./explorer/baz/baz/test/%
54+
./explorer/baz/baz/test/%/schema-html.metapack
55+
./explorer/baz/baz/test/%/schema.metapack
56+
./routes.bin
57+
./schemas
58+
./schemas/baz
59+
./schemas/baz/baz
60+
./schemas/baz/baz/test
61+
./schemas/baz/baz/test/%
62+
./schemas/baz/baz/test/%/blaze-exhaustive.metapack
63+
./schemas/baz/baz/test/%/blaze-fast.metapack
64+
./schemas/baz/baz/test/%/bundle.metapack
65+
./schemas/baz/baz/test/%/dependencies.metapack
66+
./schemas/baz/baz/test/%/dependents.metapack
67+
./schemas/baz/baz/test/%/editor.metapack
68+
./schemas/baz/baz/test/%/health.metapack
69+
./schemas/baz/baz/test/%/locations.metapack
70+
./schemas/baz/baz/test/%/positions.metapack
71+
./schemas/baz/baz/test/%/schema.metapack
72+
./schemas/baz/baz/test/%/stats.metapack
73+
./state.bin
74+
./version.json
75+
EOF
76+
77+
diff "$TMP/manifest.txt" "$TMP/expected.txt"

0 commit comments

Comments
 (0)