Skip to content

Commit 2266d0d

Browse files
committed
Merge branch 'NLB-1190' into 'master'
fix: add njs directives Closes NLB-1190 See merge request f5/nginx/crossplane-go!25
2 parents 19ee136 + a103e98 commit 2266d0d

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed

analyze.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2091,18 +2091,45 @@ var directives = map[string][]uint{
20912091
"js_access": {
20922092
ngxStreamMainConf | ngxStreamSrvConf | ngxConfTake1,
20932093
},
2094+
"js_body_filter": {
2095+
ngxHTTPLocConf | ngxHTTPLmtConf | ngxConfTake1,
2096+
},
20942097
"js_content": {
20952098
ngxHTTPLocConf | ngxHTTPLmtConf | ngxConfTake1,
20962099
},
2100+
"js_fetch_ciphers": {
2101+
ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake1,
2102+
ngxStreamMainConf | ngxStreamSrvConf | ngxConfTake1,
2103+
},
2104+
"js_fetch_protocols": {
2105+
ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConf1More,
2106+
ngxStreamMainConf | ngxStreamSrvConf | ngxConf1More,
2107+
},
2108+
"js_fetch_trusted_certificate": {
2109+
ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake1,
2110+
ngxStreamMainConf | ngxStreamSrvConf | ngxConfTake1,
2111+
},
2112+
"js_fetch_verify_depth": {
2113+
ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake1,
2114+
ngxStreamMainConf | ngxStreamSrvConf | ngxConfTake1,
2115+
},
20972116
"js_filter": {
20982117
ngxStreamMainConf | ngxStreamSrvConf | ngxConfTake1,
20992118
},
2119+
"js_header_filter": {
2120+
ngxHTTPLocConf | ngxHTTPLmtConf | ngxConfTake1,
2121+
},
2122+
"js_import": {
2123+
ngxHTTPMainConf | ngxConfTake1,
2124+
ngxStreamMainConf | ngxConfTake1,
2125+
},
21002126
"js_include": {
21012127
ngxHTTPMainConf | ngxConfTake1,
21022128
ngxStreamMainConf | ngxConfTake1,
21032129
},
21042130
"js_path": {
21052131
ngxHTTPMainConf | ngxConfTake1,
2132+
ngxStreamMainConf | ngxConfTake1,
21062133
},
21072134
"js_preread": {
21082135
ngxStreamMainConf | ngxStreamSrvConf | ngxConfTake1,
@@ -2111,6 +2138,10 @@ var directives = map[string][]uint{
21112138
ngxHTTPMainConf | ngxConfTake2,
21122139
ngxStreamMainConf | ngxConfTake2,
21132140
},
2141+
"js_var": {
2142+
ngxHTTPMainConf | ngxConfTake12,
2143+
ngxStreamMainConf | ngxConfTake12,
2144+
},
21142145
"keyval": {
21152146
ngxHTTPMainConf | ngxConfTake3,
21162147
ngxStreamMainConf | ngxConfTake3,

analyze_test.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,50 @@ func TestAnalyze_auth_jwt(t *testing.T) {
112112
}
113113
}
114114

115+
func TestAnalyze_njs(t *testing.T) {
116+
t.Parallel()
117+
testcases := map[string]struct {
118+
stmt *Directive
119+
ctx blockCtx
120+
wantErr bool
121+
}{
122+
"js_import ok": {
123+
&Directive{
124+
Directive: "js_import",
125+
Args: []string{"http.js"},
126+
Line: 5,
127+
},
128+
blockCtx{"http"},
129+
false,
130+
},
131+
"js_import not ok": {
132+
&Directive{
133+
Directive: "js_import",
134+
Args: []string{"http.js"},
135+
Line: 5,
136+
},
137+
blockCtx{"http", "location"},
138+
true,
139+
},
140+
}
141+
142+
for name, tc := range testcases {
143+
tc := tc
144+
t.Run(name, func(t *testing.T) {
145+
t.Parallel()
146+
err := analyze("nginx.conf", tc.stmt, ";", tc.ctx, &ParseOptions{})
147+
148+
if !tc.wantErr && err != nil {
149+
t.Fatal(err)
150+
}
151+
152+
if tc.wantErr && err == nil {
153+
t.Fatal("expected error, got nil")
154+
}
155+
})
156+
}
157+
}
158+
115159
func TestAnalyze_stream_resolver(t *testing.T) {
116160
t.Parallel()
117161
testcases := map[string]struct {

0 commit comments

Comments
 (0)