@@ -33,6 +33,11 @@ vi.mock("@opennextjs/aws/adapters/config/index.js", () => ({
33
33
version : 2 ,
34
34
} ,
35
35
FunctionsConfigManifest : undefined ,
36
+ PrerenderManifest : {
37
+ preview : {
38
+ previewModeId : "preview" ,
39
+ } ,
40
+ } ,
36
41
} ) ) ;
37
42
38
43
vi . mock ( "@opennextjs/aws/core/routing/i18n/index.js" , ( ) => ( {
@@ -76,6 +81,7 @@ describe("handleMiddleware", () => {
76
81
const event = createEvent ( {
77
82
headers : {
78
83
"x-isr" : "1" ,
84
+ "x-prerender-revalidate" : "preview" ,
79
85
} ,
80
86
} ) ;
81
87
const result = await handleMiddleware ( event , middlewareLoader ) ;
@@ -84,6 +90,45 @@ describe("handleMiddleware", () => {
84
90
expect ( result ) . toEqual ( event ) ;
85
91
} ) ;
86
92
93
+ it ( "should not bypass middleware for request with an incorrect x-prerender-revalidate" , async ( ) => {
94
+ const event = createEvent ( {
95
+ headers : {
96
+ "x-isr" : "1" ,
97
+ "x-prerender-revalidate" : "incorrect" ,
98
+ } ,
99
+ } ) ;
100
+ middleware . mockResolvedValue ( {
101
+ status : 302 ,
102
+ headers : new Headers ( {
103
+ location : "/redirect" ,
104
+ } ) ,
105
+ } ) ;
106
+ const result = await handleMiddleware ( event , middlewareLoader ) ;
107
+
108
+ expect ( middlewareLoader ) . toHaveBeenCalled ( ) ;
109
+ expect ( result . statusCode ) . toEqual ( 302 ) ;
110
+ expect ( result . headers . location ) . toEqual ( "/redirect" ) ;
111
+ } ) ;
112
+
113
+ it ( "should not bypass middleware if there is no x-prerender-revalidate" , async ( ) => {
114
+ const event = createEvent ( {
115
+ headers : {
116
+ "x-isr" : "1" ,
117
+ } ,
118
+ } ) ;
119
+ middleware . mockResolvedValue ( {
120
+ status : 302 ,
121
+ headers : new Headers ( {
122
+ location : "/redirect" ,
123
+ } ) ,
124
+ } ) ;
125
+ const result = await handleMiddleware ( event , middlewareLoader ) ;
126
+
127
+ expect ( middlewareLoader ) . toHaveBeenCalled ( ) ;
128
+ expect ( result . statusCode ) . toEqual ( 302 ) ;
129
+ expect ( result . headers . location ) . toEqual ( "/redirect" ) ;
130
+ } ) ;
131
+
87
132
it ( "should invoke middleware with redirect" , async ( ) => {
88
133
const event = createEvent ( { } ) ;
89
134
middleware . mockResolvedValue ( {
0 commit comments