MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / testUserQueriesCommon

Function testUserQueriesCommon

db/functions/n1ql_function_test.go:120–158  ·  view source on GitHub ↗
(t *testing.T, ctx context.Context, db *db.Database)

Source from the content-addressed store, hash-verified

118}
119
120func testUserQueriesCommon(t *testing.T, ctx context.Context, db *db.Database) {
121 // dynamic channel list
122 fn, err := db.GetUserFunction(ctx, "airports_in_city", map[string]any{"city": "London"}, false)
123 assert.NoError(t, err)
124 iter, err := fn.Iterate()
125 assert.NoError(t, err)
126 assertQueryResults(t, `[{"city":"London"}]`, iter)
127
128 fn, err = db.GetUserFunction(ctx, "square", map[string]any{"numero": 16}, false)
129 assert.NoError(t, err)
130 iter, err = fn.Iterate()
131 assert.NoError(t, err)
132 assertQueryResults(t, `[{"square":256}]`, iter)
133
134 fn, err = db.GetUserFunction(ctx, "inject", map[string]any{"foo": "1337 as pwned"}, false)
135 assert.NoError(t, err)
136 iter, err = fn.Iterate()
137 assert.NoError(t, err)
138 assertQueryResults(t, `[{"foo":"1337 as pwned"}]`, iter)
139
140 // ERRORS:
141
142 // Missing a parameter:
143 _, err = callUserQuery(ctx, db, "square", nil)
144 assertHTTPError(t, err, 400)
145 assert.ErrorContains(t, err, "numero")
146 assert.ErrorContains(t, err, "square")
147
148 // Extra parameter:
149 _, err = callUserQuery(ctx, db, "square", map[string]any{"numero": 42, "number": 0})
150 assertHTTPError(t, err, 400)
151 assert.ErrorContains(t, err, "number")
152 assert.ErrorContains(t, err, "square")
153
154 // Function definition has a syntax error:
155 _, err = callUserQuery(ctx, db, "syntax_error", nil)
156 assertHTTPError(t, err, 500)
157 assert.ErrorContains(t, err, "syntax_error")
158}
159
160func testUserQueriesAsAdmin(t *testing.T, ctx context.Context, db *db.Database) {
161 testUserQueriesCommon(t, ctx, db)

Callers 2

testUserQueriesAsAdminFunction · 0.70
testUserQueriesAsUserFunction · 0.70

Calls 5

assertQueryResultsFunction · 0.85
callUserQueryFunction · 0.85
GetUserFunctionMethod · 0.80
assertHTTPErrorFunction · 0.70
IterateMethod · 0.65

Tested by

no test coverage detected