@@ -20,7 +20,12 @@ import type {
2020 Space ,
2121} from '../../lib/export-types'
2222import { TestDefaults } from '../defaults'
23- import { makeLink } from '../utils'
23+ import {
24+ createEmptyRelease ,
25+ createTestEntry ,
26+ updateReleaseWithEntries ,
27+ updateReleaseEntryTitle ,
28+ } from './utils/release-entry.utils'
2429
2530describe ( 'Entry Api' , ( ) => {
2631 afterAll ( async ( ) => await timeoutToCalmRateLimiting ( ) )
@@ -718,7 +723,7 @@ describe('Entry Api', () => {
718723 } )
719724
720725 //test releasev2 entry logic
721- describe ( 'read plainClientApi with releaseId' , ( ) => {
726+ describe ( 'plainClientApi with releaseId' , ( ) => {
722727 let entry : EntryProps
723728 let entry2 : EntryProps
724729 let release : ReleaseProps
@@ -733,45 +738,25 @@ describe('Entry Api', () => {
733738 }
734739 createEntryClient = initPlainClient ( defaultParams )
735740
736- entry = await createEntryClient . entry . create (
737- { ...defaultParams , contentTypeId : TestDefaults . contentType . withCrossSpaceReferenceId } ,
738- {
739- fields : {
740- title : {
741- 'en-US' : 'Test Entry for Release' ,
742- } ,
743- } ,
744- }
745- )
741+ // create release
742+ release = await createEmptyRelease ( createEntryClient , defaultParams )
746743
747- entry2 = await createEntryClient . entry . create (
748- { ...defaultParams , contentTypeId : TestDefaults . contentType . withCrossSpaceReferenceId } ,
749- {
750- fields : {
751- title : {
752- 'en-US' : 'Test Entry for Release' ,
753- } ,
754- } ,
755- }
744+ // create entries to add to release
745+ entry = await createTestEntry (
746+ createEntryClient ,
747+ defaultParams ,
748+ TestDefaults . contentType . withCrossSpaceReferenceId
749+ )
750+ entry2 = await createTestEntry (
751+ createEntryClient ,
752+ defaultParams ,
753+ TestDefaults . contentType . withCrossSpaceReferenceId
756754 )
755+ // add entries to release
756+ release = await updateReleaseWithEntries ( createEntryClient , release , [ entry , entry2 ] )
757757
758- release = await createEntryClient . release . create ( defaultParams , {
759- title : 'Test Release' ,
760- entities : {
761- sys : { type : 'Array' } ,
762- items : [
763- {
764- entity : makeLink ( 'Entry' , entry . sys . id ) ,
765- action : 'publish' ,
766- } ,
767- {
768- entity : makeLink ( 'Entry' , entry2 . sys . id ) ,
769- action : 'publish' ,
770- } ,
771- ] ,
772- } ,
773- startDate : '2025-08-28T10:00:000Z' ,
774- } )
758+ // update release entry with title
759+ await updateReleaseEntryTitle ( createEntryClient , release , entry )
775760 } )
776761
777762 afterAll ( async ( ) => {
@@ -811,6 +796,33 @@ describe('Entry Api', () => {
811796 expect ( fetchedEntry . sys . id ) . toEqual ( entry . sys . id )
812797 expect ( fetchedEntry . sys . release . sys . id ) . toEqual ( release . sys . id )
813798 } )
799+
800+ test ( 'entry.patch works' , async ( ) => {
801+ const entryToPatch = await createEntryClient . entry . get ( {
802+ entryId : entry . sys . id ,
803+ releaseId : release . sys . id ,
804+ } )
805+
806+ const patchedEntry = await createEntryClient . entry . patch (
807+ {
808+ entryId : entryToPatch . sys . id ,
809+ releaseId : release . sys . id ,
810+ version : entryToPatch . sys . version ,
811+ } ,
812+ [
813+ {
814+ op : 'replace' as const ,
815+ path : '/fields/title/en-US' ,
816+ value : 'Entry patched via release' ,
817+ } ,
818+ ]
819+ )
820+
821+ expect ( patchedEntry . sys . id ) . toEqual ( entryToPatch . sys . id )
822+ expect ( patchedEntry . fields . title [ 'en-US' ] ) . toEqual ( 'Entry patched via release' )
823+ expect ( patchedEntry . sys . version ) . toBeGreaterThan ( entryToPatch . sys . version )
824+ expect ( ( patchedEntry as any ) . sys . release . sys . id ) . toEqual ( entryToPatch . sys . release . sys . id )
825+ } )
814826 } )
815827
816828 describe ( 'releaseId is provided in default params, but not in params' , ( ) => {
@@ -841,6 +853,31 @@ describe('Entry Api', () => {
841853 expect ( fetchedEntry . sys . id ) . toEqual ( entry . sys . id )
842854 expect ( fetchedEntry . sys . release . sys . id ) . toEqual ( release . sys . id )
843855 } )
856+
857+ test ( 'entry.patch works' , async ( ) => {
858+ const entryToPatch = await createEntryClient . entry . get ( {
859+ entryId : entry . sys . id ,
860+ } )
861+
862+ const patchedEntry = await createEntryClient . entry . patch (
863+ {
864+ entryId : entryToPatch . sys . id ,
865+ version : entryToPatch . sys . version ,
866+ } ,
867+ [
868+ {
869+ op : 'replace' ,
870+ path : '/fields/title/en-US' ,
871+ value : 'Entry patched via default release' ,
872+ } ,
873+ ]
874+ )
875+
876+ expect ( patchedEntry . sys . id ) . toEqual ( entryToPatch . sys . id )
877+ expect ( patchedEntry . fields . title [ 'en-US' ] ) . toEqual ( 'Entry patched via default release' )
878+ expect ( patchedEntry . sys . version ) . toBeGreaterThan ( entryToPatch . sys . version )
879+ expect ( ( patchedEntry as any ) . sys . release . sys . id ) . toEqual ( entryToPatch . sys . release . sys . id )
880+ } )
844881 } )
845882 } )
846883
0 commit comments