UNPKG

sanity

Version:

Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches

41 lines (34 loc) 1.74 kB
import {expect, test} from '@jest/globals' import {type SanityDocument} from '@sanity/types' import {collate, documentIdEquals, removeDupes} from './draftUtils' test('collate()', () => { const foo = {_type: 'foo', _id: 'foo'} const fooDraft = {_type: 'foo', _id: 'drafts.foo'} const barDraft = {_type: 'foo', _id: 'drafts.bar'} const baz = {_type: 'foo', _id: 'baz'} expect(collate([foo, fooDraft, barDraft, baz])).toEqual([ {type: 'foo', id: 'foo', draft: fooDraft, published: foo}, {type: 'foo', id: 'bar', draft: barDraft}, {type: 'foo', id: 'baz', published: baz}, ]) }) test('removeDupes()', () => { const foo = {_type: 'foo', _id: 'foo'} as SanityDocument const fooDraft = {_type: 'foo', _id: 'drafts.foo'} as SanityDocument const barDraft = {_type: 'foo', _id: 'drafts.bar'} as SanityDocument const baz = {_type: 'foo', _id: 'baz'} as SanityDocument expect(removeDupes([foo, fooDraft, barDraft, baz])).toEqual([fooDraft, barDraft, baz]) }) test.each([ ['full equality, published', 'agot', 'agot', true], ['full equality, drafts', 'drafts.agot', 'drafts.agot', true], ['lhs draft, rhs published', 'drafts.agot', 'agot', true], ['rhs draft, lhs published', 'agot', 'drafts.agot', true], ['differing documents', 'agot', 'adwd', false], ['differing documents, draft lhs', 'drafts.agot', 'adwd', false], ['differing documents, draft rhs', 'agot', 'drafts.adwd', false], ['lhs non-draft prefix, otherwise equality', 'notes.agot', 'agot', false], ['rhs non-draft prefix, otherwise equality', 'agot', 'notes.agot', false], ])('documentIdEquals(): %s', (_, documentId, equalsDocumentId, shouldEqual) => { expect(documentIdEquals(documentId, equalsDocumentId)).toEqual(shouldEqual) })