1- import { test , expect } from "@playwright/test " ;
1+ import { describe , it , expect } from "vitest " ;
22import rebuildMediaFromContent from "../../admin/components/slide/slide-media-utils" ;
33
4- test . describe ( "Slide media sync" , ( ) => {
5- test ( "It returns media IRIs referenced in content fields", ( ) => {
4+ describe ( "Slide media sync" , ( ) => {
5+ it ( " returns media IRIs referenced in content fields", ( ) => {
66 const content = {
77 mainImage : [ "/v2/media/1" , "/v2/media/2" ] ,
88 backgroundVideo : [ "/v2/media/3" ] ,
@@ -13,7 +13,7 @@ test.describe("Slide media sync", () => {
1313 expect ( result ) . toEqual ( [ "/v2/media/1" , "/v2/media/2" , "/v2/media/3" ] ) ;
1414 } ) ;
1515
16- test ( "It excludes TEMP-- IDs that have not been uploaded yet", ( ) => {
16+ it ( " excludes TEMP-- IDs that have not been uploaded yet", ( ) => {
1717 const content = {
1818 mainImage : [ "TEMP--abc123" , "/v2/media/1" ] ,
1919 } ;
@@ -23,7 +23,7 @@ test.describe("Slide media sync", () => {
2323 expect ( result ) . toEqual ( [ "/v2/media/1" ] ) ;
2424 } ) ;
2525
26- test ( "It removes media no longer referenced in any content field", ( ) => {
26+ it ( " removes media no longer referenced in any content field", ( ) => {
2727 const content = {
2828 mainImage : [ "/v2/media/2" ] ,
2929 } ;
@@ -34,7 +34,7 @@ test.describe("Slide media sync", () => {
3434 expect ( result ) . not . toContain ( "/v2/media/1" ) ;
3535 } ) ;
3636
37- test ( "It returns empty array when all media is removed from content", ( ) => {
37+ it ( " returns empty array when all media is removed from content", ( ) => {
3838 const content = {
3939 mainImage : [ ] ,
4040 backgroundVideo : [ "/v2/media/3" ] ,
@@ -45,7 +45,7 @@ test.describe("Slide media sync", () => {
4545 expect ( result ) . toEqual ( [ "/v2/media/3" ] ) ;
4646 } ) ;
4747
48- test ( "It deduplicates media used across multiple content fields", ( ) => {
48+ it ( " deduplicates media used across multiple content fields", ( ) => {
4949 const content = {
5050 mainImage : [ "/v2/media/1" ] ,
5151 thumbnail : [ "/v2/media/1" ] ,
@@ -56,15 +56,15 @@ test.describe("Slide media sync", () => {
5656 expect ( result ) . toEqual ( [ "/v2/media/1" ] ) ;
5757 } ) ;
5858
59- test ( "It handles non-existent content fields gracefully", ( ) => {
59+ it ( " handles non-existent content fields gracefully", ( ) => {
6060 const content = { } ;
6161
6262 const result = rebuildMediaFromContent ( content ) ;
6363
6464 expect ( result ) . toEqual ( [ ] ) ;
6565 } ) ;
6666
67- test ( "It handles nested content field paths", ( ) => {
67+ it ( " handles nested content field paths", ( ) => {
6868 const content = {
6969 sections : {
7070 hero : [ "/v2/media/1" ] ,
@@ -76,7 +76,7 @@ test.describe("Slide media sync", () => {
7676 expect ( result ) . toEqual ( [ "/v2/media/1" ] ) ;
7777 } ) ;
7878
79- test ( "It ignores non-media content values when scanning top-level keys", ( ) => {
79+ it ( " ignores non-media content values when scanning top-level keys", ( ) => {
8080 const content = {
8181 images : [ "/v2/media/1" ] ,
8282 title : "Some text" ,
@@ -91,7 +91,7 @@ test.describe("Slide media sync", () => {
9191 expect ( result ) . not . toContain ( "news" ) ;
9292 } ) ;
9393
94- test ( "It does not include non-media string arrays from content", ( ) => {
94+ it ( " does not include non-media string arrays from content", ( ) => {
9595 const content = {
9696 images : [ "/v2/media/1" ] ,
9797 tags : [ "news" , "sports" ] ,
@@ -104,7 +104,7 @@ test.describe("Slide media sync", () => {
104104 expect ( result ) . not . toContain ( "sports" ) ;
105105 } ) ;
106106
107- test ( "It avoids infinite recursion when content contains circular references", ( ) => {
107+ it ( " avoids infinite recursion when content contains circular references", ( ) => {
108108 const circular = { images : [ "/v2/media/1" ] } ;
109109 circular . self = circular ; // create an explicit cycle
110110
0 commit comments