@xyo-network/archivist-acceptance-tests 3.8.4 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/neutral/index.mjs +26 -0
- package/dist/neutral/index.mjs.map +1 -1
- package/package.json +14 -13
- package/src/query/next/next.ts +23 -0
package/dist/neutral/index.mjs
CHANGED
|
@@ -87,6 +87,32 @@ var generateArchivistNextTests = (moduleFactory, title = "next") => {
|
|
|
87
87
|
expect2(id?.salt).toBe(expected?.salt);
|
|
88
88
|
});
|
|
89
89
|
});
|
|
90
|
+
describe("with open undefined", () => {
|
|
91
|
+
const open = void 0;
|
|
92
|
+
it.each(["asc", "desc"])("returns payloads without cursor [order: %s]", async (order) => {
|
|
93
|
+
const bound = order === "asc" ? payloads.at(0) : payloads.at(-1);
|
|
94
|
+
expect2(bound).toBeDefined();
|
|
95
|
+
const expected = order === "asc" ? payloads.at(1) : payloads.at(-2);
|
|
96
|
+
expect2(expected).toBeDefined();
|
|
97
|
+
const cursor = bound?._sequence;
|
|
98
|
+
expect2(cursor).toBeDefined();
|
|
99
|
+
const response = await sut.next({
|
|
100
|
+
open,
|
|
101
|
+
order,
|
|
102
|
+
limit: 1,
|
|
103
|
+
cursor
|
|
104
|
+
});
|
|
105
|
+
expect2(response).toBeDefined();
|
|
106
|
+
expect2(response.length).toBe(1);
|
|
107
|
+
const ids = filterAs2(response, asOptionalId2);
|
|
108
|
+
expect2(ids).toBeDefined();
|
|
109
|
+
expect2(ids.length).toBe(1);
|
|
110
|
+
const id = ids.at(0);
|
|
111
|
+
expect2(id).toBeDefined();
|
|
112
|
+
expect2(id?.salt).toBeDefined();
|
|
113
|
+
expect2(id?.salt).toBe(expected?.salt);
|
|
114
|
+
});
|
|
115
|
+
});
|
|
90
116
|
});
|
|
91
117
|
});
|
|
92
118
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/query/next/next.ts","../../src/lib/fillDb.ts"],"sourcesContent":["import { filterAs } from '@xylabs/array'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport type { IdPayload } from '@xyo-network/id-payload-plugin'\nimport { asOptionalId } from '@xyo-network/id-payload-plugin'\nimport { type WithStorageMeta } from '@xyo-network/payload-model'\nimport {\n beforeEach, describe, expect, it,\n} from 'vitest'\n\nimport { fillDb } from '../../lib/index.ts'\n\nexport const generateArchivistNextTests = (\n moduleFactory: () => Promise<ArchivistInstance>,\n title: string = 'next',\n) => {\n describe(title, () => {\n let sut: ArchivistInstance\n let payloads: WithStorageMeta<IdPayload>[]\n beforeEach(async () => {\n sut = await moduleFactory()\n payloads = await fillDb(sut, 10)\n })\n describe('open', () => {\n describe('with open true', () => {\n const open = true\n it.each(['asc', 'desc'] as const)('returns payloads without cursor [order: %s]', async (order) => {\n const bound = order === 'asc' ? payloads.at(0) : payloads.at(-1)\n expect(bound).toBeDefined()\n const expected = order === 'asc' ? payloads.at(1) : payloads.at(-2)\n expect(expected).toBeDefined()\n const cursor = bound?._sequence\n expect(cursor).toBeDefined()\n const response = await sut.next({\n open, order, limit: 1, cursor,\n })\n expect(response).toBeDefined()\n expect(response.length).toBe(1)\n const ids = filterAs(response, asOptionalId)\n expect(ids).toBeDefined()\n expect(ids.length).toBe(1)\n const id = ids.at(0)\n expect(id).toBeDefined()\n expect(id?.salt).toBeDefined()\n expect(id?.salt).toBe(expected?.salt)\n })\n })\n describe('with open false', () => {\n const open = false\n it.each(['asc', 'desc'] as const)('returns payloads without cursor [order: %s]', async (order) => {\n const bound = order === 'asc' ? payloads.at(0) : payloads.at(-1)\n expect(bound).toBeDefined()\n const expected = bound\n expect(expected).toBeDefined()\n const cursor = bound?._sequence\n expect(cursor).toBeDefined()\n const response = await sut.next({\n open, order, limit: 1, cursor,\n })\n expect(response).toBeDefined()\n expect(response.length).toBe(1)\n const ids = filterAs(response, asOptionalId)\n expect(ids).toBeDefined()\n expect(ids.length).toBe(1)\n const id = ids.at(0)\n expect(id).toBeDefined()\n expect(id?.salt).toBeDefined()\n expect(id?.salt).toBe(expected?.salt)\n })\n })\n })\n })\n}\n","import { filterAs } from '@xylabs/array'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport type { Id, IdPayload } from '@xyo-network/id-payload-plugin'\nimport { asOptionalId, IdSchema } from '@xyo-network/id-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { type WithStorageMeta } from '@xyo-network/payload-model'\nimport { v4 as uuid } from 'uuid'\nimport { expect } from 'vitest'\n\nexport const fillDb = async (sut: ArchivistInstance, count = 10): Promise<WithStorageMeta<IdPayload>[]> => {\n const payloads = Array.from(\n { length: count },\n () => new PayloadBuilder<Id>({ schema: IdSchema })\n .fields({ salt: `${uuid()}` })\n .build(),\n )\n const response = await sut.insert(payloads)\n expect(response).toBeDefined()\n expect(response.length).toBe(count)\n return filterAs(response, asOptionalId) as WithStorageMeta<IdPayload>[]\n}\n"],"mappings":"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","names":["filterAs","asOptionalId","expect","expect","filterAs","asOptionalId"]}
|
|
1
|
+
{"version":3,"sources":["../../src/query/next/next.ts","../../src/lib/fillDb.ts"],"sourcesContent":["import { filterAs } from '@xylabs/array'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport type { IdPayload } from '@xyo-network/id-payload-plugin'\nimport { asOptionalId } from '@xyo-network/id-payload-plugin'\nimport { type WithStorageMeta } from '@xyo-network/payload-model'\nimport {\n beforeEach, describe, expect, it,\n} from 'vitest'\n\nimport { fillDb } from '../../lib/index.ts'\n\nexport const generateArchivistNextTests = (\n moduleFactory: () => Promise<ArchivistInstance>,\n title: string = 'next',\n) => {\n describe(title, () => {\n let sut: ArchivistInstance\n let payloads: WithStorageMeta<IdPayload>[]\n beforeEach(async () => {\n sut = await moduleFactory()\n payloads = await fillDb(sut, 10)\n })\n describe('open', () => {\n describe('with open true', () => {\n const open = true\n it.each(['asc', 'desc'] as const)('returns payloads without cursor [order: %s]', async (order) => {\n const bound = order === 'asc' ? payloads.at(0) : payloads.at(-1)\n expect(bound).toBeDefined()\n const expected = order === 'asc' ? payloads.at(1) : payloads.at(-2)\n expect(expected).toBeDefined()\n const cursor = bound?._sequence\n expect(cursor).toBeDefined()\n const response = await sut.next({\n open, order, limit: 1, cursor,\n })\n expect(response).toBeDefined()\n expect(response.length).toBe(1)\n const ids = filterAs(response, asOptionalId)\n expect(ids).toBeDefined()\n expect(ids.length).toBe(1)\n const id = ids.at(0)\n expect(id).toBeDefined()\n expect(id?.salt).toBeDefined()\n expect(id?.salt).toBe(expected?.salt)\n })\n })\n describe('with open false', () => {\n const open = false\n it.each(['asc', 'desc'] as const)('returns payloads without cursor [order: %s]', async (order) => {\n const bound = order === 'asc' ? payloads.at(0) : payloads.at(-1)\n expect(bound).toBeDefined()\n const expected = bound\n expect(expected).toBeDefined()\n const cursor = bound?._sequence\n expect(cursor).toBeDefined()\n const response = await sut.next({\n open, order, limit: 1, cursor,\n })\n expect(response).toBeDefined()\n expect(response.length).toBe(1)\n const ids = filterAs(response, asOptionalId)\n expect(ids).toBeDefined()\n expect(ids.length).toBe(1)\n const id = ids.at(0)\n expect(id).toBeDefined()\n expect(id?.salt).toBeDefined()\n expect(id?.salt).toBe(expected?.salt)\n })\n })\n describe('with open undefined', () => {\n const open = undefined\n it.each(['asc', 'desc'] as const)('returns payloads without cursor [order: %s]', async (order) => {\n const bound = order === 'asc' ? payloads.at(0) : payloads.at(-1)\n expect(bound).toBeDefined()\n const expected = order === 'asc' ? payloads.at(1) : payloads.at(-2)\n expect(expected).toBeDefined()\n const cursor = bound?._sequence\n expect(cursor).toBeDefined()\n const response = await sut.next({\n open, order, limit: 1, cursor,\n })\n expect(response).toBeDefined()\n expect(response.length).toBe(1)\n const ids = filterAs(response, asOptionalId)\n expect(ids).toBeDefined()\n expect(ids.length).toBe(1)\n const id = ids.at(0)\n expect(id).toBeDefined()\n expect(id?.salt).toBeDefined()\n expect(id?.salt).toBe(expected?.salt)\n })\n })\n })\n })\n}\n","import { filterAs } from '@xylabs/array'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport type { Id, IdPayload } from '@xyo-network/id-payload-plugin'\nimport { asOptionalId, IdSchema } from '@xyo-network/id-payload-plugin'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { type WithStorageMeta } from '@xyo-network/payload-model'\nimport { v4 as uuid } from 'uuid'\nimport { expect } from 'vitest'\n\nexport const fillDb = async (sut: ArchivistInstance, count = 10): Promise<WithStorageMeta<IdPayload>[]> => {\n const payloads = Array.from(\n { length: count },\n () => new PayloadBuilder<Id>({ schema: IdSchema })\n .fields({ salt: `${uuid()}` })\n .build(),\n )\n const response = await sut.insert(payloads)\n expect(response).toBeDefined()\n expect(response.length).toBe(count)\n return filterAs(response, asOptionalId) as WithStorageMeta<IdPayload>[]\n}\n"],"mappings":"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","names":["filterAs","asOptionalId","expect","expect","filterAs","asOptionalId"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/archivist-acceptance-tests",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.9.0",
|
|
4
4
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
5
5
|
"homepage": "https://xyo.network",
|
|
6
6
|
"bugs": {
|
|
@@ -36,21 +36,22 @@
|
|
|
36
36
|
"@xylabs/object": "^4.5.1",
|
|
37
37
|
"@xylabs/promise": "^4.5.1",
|
|
38
38
|
"@xylabs/set": "^4.5.1",
|
|
39
|
-
"@xyo-network/account-model": "^3.
|
|
40
|
-
"@xyo-network/archivist-model": "^3.
|
|
41
|
-
"@xyo-network/boundwitness-model": "^3.
|
|
42
|
-
"@xyo-network/boundwitness-wrapper": "^3.
|
|
43
|
-
"@xyo-network/id-payload-plugin": "^3.
|
|
44
|
-
"@xyo-network/module-abstract": "^3.
|
|
45
|
-
"@xyo-network/module-model": "^3.
|
|
46
|
-
"@xyo-network/payload-builder": "^3.
|
|
47
|
-
"@xyo-network/payload-model": "^3.
|
|
39
|
+
"@xyo-network/account-model": "^3.9.0",
|
|
40
|
+
"@xyo-network/archivist-model": "^3.9.0",
|
|
41
|
+
"@xyo-network/boundwitness-model": "^3.9.0",
|
|
42
|
+
"@xyo-network/boundwitness-wrapper": "^3.9.0",
|
|
43
|
+
"@xyo-network/id-payload-plugin": "^3.9.0",
|
|
44
|
+
"@xyo-network/module-abstract": "^3.9.0",
|
|
45
|
+
"@xyo-network/module-model": "^3.9.0",
|
|
46
|
+
"@xyo-network/payload-builder": "^3.9.0",
|
|
47
|
+
"@xyo-network/payload-model": "^3.9.0",
|
|
48
48
|
"uuid": "^11.0.5"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@xylabs/ts-scripts-yarn3": "^5.0.
|
|
52
|
-
"@xylabs/tsconfig": "^5.0.
|
|
53
|
-
"typescript": "^5.7.3"
|
|
51
|
+
"@xylabs/ts-scripts-yarn3": "^5.0.23",
|
|
52
|
+
"@xylabs/tsconfig": "^5.0.23",
|
|
53
|
+
"typescript": "^5.7.3",
|
|
54
|
+
"vitest": "^3.0.5"
|
|
54
55
|
},
|
|
55
56
|
"publishConfig": {
|
|
56
57
|
"access": "public"
|
package/src/query/next/next.ts
CHANGED
|
@@ -67,6 +67,29 @@ export const generateArchivistNextTests = (
|
|
|
67
67
|
expect(id?.salt).toBe(expected?.salt)
|
|
68
68
|
})
|
|
69
69
|
})
|
|
70
|
+
describe('with open undefined', () => {
|
|
71
|
+
const open = undefined
|
|
72
|
+
it.each(['asc', 'desc'] as const)('returns payloads without cursor [order: %s]', async (order) => {
|
|
73
|
+
const bound = order === 'asc' ? payloads.at(0) : payloads.at(-1)
|
|
74
|
+
expect(bound).toBeDefined()
|
|
75
|
+
const expected = order === 'asc' ? payloads.at(1) : payloads.at(-2)
|
|
76
|
+
expect(expected).toBeDefined()
|
|
77
|
+
const cursor = bound?._sequence
|
|
78
|
+
expect(cursor).toBeDefined()
|
|
79
|
+
const response = await sut.next({
|
|
80
|
+
open, order, limit: 1, cursor,
|
|
81
|
+
})
|
|
82
|
+
expect(response).toBeDefined()
|
|
83
|
+
expect(response.length).toBe(1)
|
|
84
|
+
const ids = filterAs(response, asOptionalId)
|
|
85
|
+
expect(ids).toBeDefined()
|
|
86
|
+
expect(ids.length).toBe(1)
|
|
87
|
+
const id = ids.at(0)
|
|
88
|
+
expect(id).toBeDefined()
|
|
89
|
+
expect(id?.salt).toBeDefined()
|
|
90
|
+
expect(id?.salt).toBe(expected?.salt)
|
|
91
|
+
})
|
|
92
|
+
})
|
|
70
93
|
})
|
|
71
94
|
})
|
|
72
95
|
}
|