Files
klz-cables.com/.pnpm-store/v10/files/58/b642a99fca7a48a7430b3770555f36b9a5a429445cd872664ad488e6cd064ab79e4bc6f6af43b749a83ffb12cc014ebc2c10ec03efeef257b01bbaca3f12c1
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

1 line
13 KiB
Plaintext

{"version":3,"sources":["../../src/locked-documents/config.spec.ts"],"sourcesContent":["import type { Config } from '../config/types.js'\nimport { describe, it, expect } from 'vitest'\nimport { getLockedDocumentsCollection } from './config.js'\n\ndescribe('getLockedDocumentsCollection', () => {\n it('should return null when no lockable collections or globals exist', () => {\n const config: Config = {\n collections: [\n {\n slug: 'posts',\n lockDocuments: false,\n fields: [],\n },\n {\n slug: 'pages',\n lockDocuments: false,\n fields: [],\n },\n ],\n globals: [\n {\n slug: 'settings',\n lockDocuments: false,\n fields: [],\n },\n ],\n } as Config\n\n const result = getLockedDocumentsCollection(config)\n\n expect(result).toBeNull()\n })\n\n it('should return null when no auth collections exist', () => {\n const config: Config = {\n collections: [\n {\n slug: 'posts',\n lockDocuments: true,\n fields: [],\n },\n {\n slug: 'pages',\n lockDocuments: { duration: 600 },\n fields: [],\n },\n ],\n } as Config\n\n const result = getLockedDocumentsCollection(config)\n\n expect(result).toBeNull()\n })\n\n it('should return collection config when lockable and auth collections exist', () => {\n const config: Config = {\n collections: [\n {\n slug: 'posts',\n lockDocuments: true,\n fields: [],\n },\n {\n slug: 'pages',\n lockDocuments: { duration: 600 },\n fields: [],\n },\n {\n slug: 'users',\n auth: true,\n fields: [],\n },\n ],\n } as Config\n\n const result = getLockedDocumentsCollection(config)\n\n expect(result).not.toBeNull()\n expect(result?.slug).toBe('payload-locked-documents')\n expect(result?.fields).toHaveLength(3)\n\n // Check document field\n const documentField = result?.fields.find((f) => 'name' in f && f.name === 'document')\n expect(documentField).toBeDefined()\n expect(documentField?.type).toBe('relationship')\n if (documentField?.type === 'relationship') {\n expect(documentField.relationTo).toEqual(['posts', 'pages', 'users'])\n }\n\n // Check user field\n const userField = result?.fields.find((f) => 'name' in f && f.name === 'user')\n expect(userField).toBeDefined()\n expect(userField?.type).toBe('relationship')\n if (userField?.type === 'relationship') {\n expect(userField.relationTo).toEqual(['users'])\n }\n })\n\n it('should only include collections with lockDocuments !== false', () => {\n const config: Config = {\n collections: [\n {\n slug: 'posts',\n lockDocuments: true,\n fields: [],\n },\n {\n slug: 'pages',\n lockDocuments: false,\n fields: [],\n },\n {\n slug: 'articles',\n // lockDocuments undefined (defaults to true)\n fields: [],\n },\n {\n slug: 'users',\n auth: true,\n fields: [],\n },\n ],\n } as Config\n\n const result = getLockedDocumentsCollection(config)\n\n expect(result).not.toBeNull()\n\n const documentField = result?.fields.find((f) => 'name' in f && f.name === 'document')\n if (documentField?.type === 'relationship') {\n expect(documentField.relationTo).toEqual(['posts', 'articles', 'users'])\n expect(documentField.relationTo).not.toContain('pages')\n }\n })\n\n it('should include multiple auth collections', () => {\n const config: Config = {\n collections: [\n {\n slug: 'posts',\n lockDocuments: true,\n fields: [],\n },\n {\n slug: 'users',\n auth: true,\n fields: [],\n },\n {\n slug: 'admins',\n auth: { loginWithUsername: true },\n fields: [],\n },\n ],\n } as Config\n\n const result = getLockedDocumentsCollection(config)\n\n expect(result).not.toBeNull()\n\n const userField = result?.fields.find((f) => 'name' in f && f.name === 'user')\n if (userField?.type === 'relationship') {\n expect(userField.relationTo).toEqual(['users', 'admins'])\n }\n })\n\n it('should set lockDocuments to false on the locked-documents collection itself', () => {\n const config: Config = {\n collections: [\n {\n slug: 'posts',\n lockDocuments: true,\n fields: [],\n },\n {\n slug: 'users',\n auth: true,\n fields: [],\n },\n ],\n } as Config\n\n const result = getLockedDocumentsCollection(config)\n\n expect(result).not.toBeNull()\n expect(result?.lockDocuments).toBe(false)\n })\n\n it('should create collection when only globals have lockDocuments enabled', () => {\n const config: Config = {\n collections: [\n {\n slug: 'posts',\n lockDocuments: false,\n fields: [],\n },\n {\n slug: 'users',\n auth: true,\n lockDocuments: false,\n fields: [],\n },\n ],\n globals: [\n {\n slug: 'settings',\n lockDocuments: true,\n fields: [],\n },\n {\n slug: 'menu',\n lockDocuments: { duration: 600 },\n fields: [],\n },\n ],\n } as Config\n\n const result = getLockedDocumentsCollection(config)\n\n expect(result).not.toBeNull()\n expect(result?.slug).toBe('payload-locked-documents')\n\n // Should NOT have a document field since no lockable collections\n const documentField = result?.fields.find((f) => 'name' in f && f.name === 'document')\n expect(documentField).toBeUndefined()\n\n // Should have globalSlug field\n const globalSlugField = result?.fields.find((f) => 'name' in f && f.name === 'globalSlug')\n expect(globalSlugField).toBeDefined()\n\n // Should have user field\n const userField = result?.fields.find((f) => 'name' in f && f.name === 'user')\n expect(userField).toBeDefined()\n })\n\n it('should include document field when lockable collections exist', () => {\n const config: Config = {\n collections: [\n {\n slug: 'posts',\n lockDocuments: true,\n fields: [],\n },\n {\n slug: 'users',\n auth: true,\n fields: [],\n },\n ],\n globals: [\n {\n slug: 'settings',\n lockDocuments: false,\n fields: [],\n },\n ],\n } as Config\n\n const result = getLockedDocumentsCollection(config)\n\n expect(result).not.toBeNull()\n\n // Should have document field\n const documentField = result?.fields.find((f) => 'name' in f && f.name === 'document')\n expect(documentField).toBeDefined()\n expect(documentField?.type).toBe('relationship')\n if (documentField?.type === 'relationship') {\n expect(documentField.relationTo).toEqual(['posts', 'users'])\n }\n\n // Should have globalSlug field\n const globalSlugField = result?.fields.find((f) => 'name' in f && f.name === 'globalSlug')\n expect(globalSlugField).toBeDefined()\n })\n\n it('should include document field when both lockable collections and globals exist', () => {\n const config: Config = {\n collections: [\n {\n slug: 'posts',\n lockDocuments: true,\n fields: [],\n },\n {\n slug: 'users',\n auth: true,\n fields: [],\n },\n ],\n globals: [\n {\n slug: 'settings',\n lockDocuments: true,\n fields: [],\n },\n ],\n } as Config\n\n const result = getLockedDocumentsCollection(config)\n\n expect(result).not.toBeNull()\n\n // Should have document field for collections\n const documentField = result?.fields.find((f) => 'name' in f && f.name === 'document')\n expect(documentField).toBeDefined()\n\n // Should have globalSlug field for globals\n const globalSlugField = result?.fields.find((f) => 'name' in f && f.name === 'globalSlug')\n expect(globalSlugField).toBeDefined()\n })\n})\n"],"names":["describe","it","expect","getLockedDocumentsCollection","config","collections","slug","lockDocuments","fields","globals","result","toBeNull","duration","auth","not","toBe","toHaveLength","documentField","find","f","name","toBeDefined","type","relationTo","toEqual","userField","toContain","loginWithUsername","toBeUndefined","globalSlugField"],"mappings":"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"}