Skip to content

Commit 580e7e8

Browse files
authored
SNOW-921006 Introduce wiremock (#1300)
1 parent 5b705f4 commit 580e7e8

File tree

6 files changed

+352
-0
lines changed

6 files changed

+352
-0
lines changed

.github/workflows/build-test.yml

+15
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ jobs:
5252
name: ${{ matrix.cloud }} Go ${{ matrix.go }} on Ubuntu
5353
steps:
5454
- uses: actions/checkout@v4
55+
- uses: actions/setup-java@v4 # for wiremock
56+
with:
57+
java-version: 11
58+
distribution: 'temurin'
5559
- name: Setup go
5660
uses: actions/setup-go@v5
5761
with:
@@ -63,6 +67,7 @@ jobs:
6367
CLOUD_PROVIDER: ${{ matrix.cloud }}
6468
GORACE: history_size=7
6569
GO_TEST_PARAMS: ${{ inputs.goTestParams }}
70+
WIREMOCK_PORT: 14335
6671
run: ./ci/test.sh
6772
- name: Upload coverage to Codecov
6873
uses: codecov/codecov-action@v5
@@ -78,6 +83,10 @@ jobs:
7883
name: ${{ matrix.cloud }} Go ${{ matrix.go }} on Mac
7984
steps:
8085
- uses: actions/checkout@v4
86+
- uses: actions/setup-java@v4 # for wiremock
87+
with:
88+
java-version: 11
89+
distribution: 'temurin'
8190
- name: Setup go
8291
uses: actions/setup-go@v5
8392
with:
@@ -88,6 +97,7 @@ jobs:
8897
PARAMETERS_SECRET: ${{ secrets.PARAMETERS_SECRET }}
8998
CLOUD_PROVIDER: ${{ matrix.cloud }}
9099
GO_TEST_PARAMS: ${{ inputs.goTestParams }}
100+
WIREMOCK_PORT: 14335
91101
run: ./ci/test.sh
92102
- name: Upload coverage to Codecov
93103
uses: codecov/codecov-action@v5
@@ -103,6 +113,10 @@ jobs:
103113
name: ${{ matrix.cloud }} Go ${{ matrix.go }} on Windows
104114
steps:
105115
- uses: actions/checkout@v4
116+
- uses: actions/setup-java@v4 # for wiremock
117+
with:
118+
java-version: 11
119+
distribution: 'temurin'
106120
- name: Setup go
107121
uses: actions/setup-go@v5
108122
with:
@@ -117,6 +131,7 @@ jobs:
117131
PARAMETERS_SECRET: ${{ secrets.PARAMETERS_SECRET }}
118132
CLOUD_PROVIDER: ${{ matrix.cloud }}
119133
GO_TEST_PARAMS: ${{ inputs.goTestParams }}
134+
WIREMOCK_PORT: 14335
120135
run: ci\\test.bat
121136
- name: Upload coverage to Codecov
122137
uses: codecov/codecov-action@v5

ci/test.bat

+3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ setlocal EnableDelayedExpansion
44

55
start /b python ci\scripts\hang_webserver.py 12345
66

7+
curl -O https://repo1.maven.org/maven2/org/wiremock/wiremock-standalone/3.11.0/wiremock-standalone-3.11.0.jar
8+
START /B java -jar wiremock-standalone-3.11.0.jar --port %WIREMOCK_PORT%
9+
710
if "%CLOUD_PROVIDER%"=="AWS" set PARAMETER_FILENAME=parameters_aws_golang.json.gpg
811
if "%CLOUD_PROVIDER%"=="AZURE" set PARAMETER_FILENAME=parameters_azure_golang.json.gpg
912
if "%CLOUD_PROVIDER%"=="GCP" set PARAMETER_FILENAME=parameters_gcp_golang.json.gpg

ci/test.sh

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ set -o pipefail
77

88
CI_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
99

10+
curl -O https://repo1.maven.org/maven2/org/wiremock/wiremock-standalone/3.11.0/wiremock-standalone-3.11.0.jar
11+
java -jar wiremock-standalone-3.11.0.jar --port $WIREMOCK_PORT &
12+
1013
if [[ -n "$JENKINS_HOME" ]]; then
1114
ROOT_DIR="$(cd "${CI_DIR}/.." && pwd)"
1215
export WORKSPACE=${WORKSPACE:-/tmp}
+204
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
1+
{
2+
"mappings": [
3+
{
4+
"scenarioName": "Successful SELECT 1 flow",
5+
"request": {
6+
"urlPathPattern": "/queries/v1/query-request.*",
7+
"method": "POST",
8+
"headers": {
9+
"Authorization": {
10+
"equalTo": "%AUTHORIZATION_HEADER%"
11+
}
12+
}
13+
},
14+
"response": {
15+
"status": 200,
16+
"jsonBody": {
17+
"data": {
18+
"parameters": [
19+
{
20+
"name": "TIMESTAMP_OUTPUT_FORMAT",
21+
"value": "YYYY-MM-DD HH24:MI:SS.FF3 TZHTZM"
22+
},
23+
{
24+
"name": "CLIENT_PREFETCH_THREADS",
25+
"value": 4
26+
},
27+
{
28+
"name": "TIME_OUTPUT_FORMAT",
29+
"value": "HH24:MI:SS"
30+
},
31+
{
32+
"name": "CLIENT_RESULT_CHUNK_SIZE",
33+
"value": 16
34+
},
35+
{
36+
"name": "TIMESTAMP_TZ_OUTPUT_FORMAT",
37+
"value": ""
38+
},
39+
{
40+
"name": "CLIENT_SESSION_KEEP_ALIVE",
41+
"value": false
42+
},
43+
{
44+
"name": "QUERY_CONTEXT_CACHE_SIZE",
45+
"value": 5
46+
},
47+
{
48+
"name": "CLIENT_METADATA_USE_SESSION_DATABASE",
49+
"value": false
50+
},
51+
{
52+
"name": "CLIENT_OUT_OF_BAND_TELEMETRY_ENABLED",
53+
"value": false
54+
},
55+
{
56+
"name": "ENABLE_STAGE_S3_PRIVATELINK_FOR_US_EAST_1",
57+
"value": true
58+
},
59+
{
60+
"name": "TIMESTAMP_NTZ_OUTPUT_FORMAT",
61+
"value": "YYYY-MM-DD HH24:MI:SS.FF3"
62+
},
63+
{
64+
"name": "CLIENT_RESULT_PREFETCH_THREADS",
65+
"value": 1
66+
},
67+
{
68+
"name": "CLIENT_METADATA_REQUEST_USE_CONNECTION_CTX",
69+
"value": false
70+
},
71+
{
72+
"name": "CLIENT_HONOR_CLIENT_TZ_FOR_TIMESTAMP_NTZ",
73+
"value": true
74+
},
75+
{
76+
"name": "CLIENT_MEMORY_LIMIT",
77+
"value": 1536
78+
},
79+
{
80+
"name": "CLIENT_TIMESTAMP_TYPE_MAPPING",
81+
"value": "TIMESTAMP_LTZ"
82+
},
83+
{
84+
"name": "TIMEZONE",
85+
"value": "America/Los_Angeles"
86+
},
87+
{
88+
"name": "SERVICE_NAME",
89+
"value": ""
90+
},
91+
{
92+
"name": "CLIENT_RESULT_PREFETCH_SLOTS",
93+
"value": 2
94+
},
95+
{
96+
"name": "CLIENT_TELEMETRY_ENABLED",
97+
"value": true
98+
},
99+
{
100+
"name": "CLIENT_DISABLE_INCIDENTS",
101+
"value": true
102+
},
103+
{
104+
"name": "CLIENT_USE_V1_QUERY_API",
105+
"value": true
106+
},
107+
{
108+
"name": "CLIENT_RESULT_COLUMN_CASE_INSENSITIVE",
109+
"value": false
110+
},
111+
{
112+
"name": "CSV_TIMESTAMP_FORMAT",
113+
"value": ""
114+
},
115+
{
116+
"name": "BINARY_OUTPUT_FORMAT",
117+
"value": "HEX"
118+
},
119+
{
120+
"name": "CLIENT_ENABLE_LOG_INFO_STATEMENT_PARAMETERS",
121+
"value": false
122+
},
123+
{
124+
"name": "CLIENT_TELEMETRY_SESSIONLESS_ENABLED",
125+
"value": true
126+
},
127+
{
128+
"name": "DATE_OUTPUT_FORMAT",
129+
"value": "YYYY-MM-DD"
130+
},
131+
{
132+
"name": "CLIENT_STAGE_ARRAY_BINDING_THRESHOLD",
133+
"value": 65280
134+
},
135+
{
136+
"name": "CLIENT_SESSION_KEEP_ALIVE_HEARTBEAT_FREQUENCY",
137+
"value": 3600
138+
},
139+
{
140+
"name": "CLIENT_SESSION_CLONE",
141+
"value": false
142+
},
143+
{
144+
"name": "AUTOCOMMIT",
145+
"value": true
146+
},
147+
{
148+
"name": "TIMESTAMP_LTZ_OUTPUT_FORMAT",
149+
"value": ""
150+
}
151+
],
152+
"rowtype": [
153+
{
154+
"name": "1",
155+
"database": "",
156+
"schema": "",
157+
"table": "",
158+
"nullable": false,
159+
"length": null,
160+
"type": "fixed",
161+
"scale": 0,
162+
"precision": 1,
163+
"byteLength": null,
164+
"collation": null
165+
}
166+
],
167+
"rowset": [
168+
[
169+
"1"
170+
]
171+
],
172+
"total": 1,
173+
"returned": 1,
174+
"queryId": "01ba13b4-0104-e9fd-0000-0111029ca00e",
175+
"databaseProvider": null,
176+
"finalDatabaseName": null,
177+
"finalSchemaName": null,
178+
"finalWarehouseName": "TEST_XSMALL",
179+
"finalRoleName": "ACCOUNTADMIN",
180+
"numberOfBinds": 0,
181+
"arrayBindSupported": false,
182+
"statementTypeId": 4096,
183+
"version": 1,
184+
"sendResultTime": 1738317395581,
185+
"queryResultFormat": "json",
186+
"queryContext": {
187+
"entries": [
188+
{
189+
"id": 0,
190+
"timestamp": 1738317395574564,
191+
"priority": 0,
192+
"context": "CPbPTg=="
193+
}
194+
]
195+
}
196+
},
197+
"code": null,
198+
"message": null,
199+
"success": true
200+
}
201+
}
202+
}
203+
]
204+
}
+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"mappings": [
3+
{
4+
"scenarioName": "Successful telemetry flow",
5+
"request": {
6+
"urlPathPattern": "/telemetry/send",
7+
"method": "POST"
8+
},
9+
"response": {
10+
"status": 200,
11+
"jsonBody": {
12+
"data": {
13+
"code": null,
14+
"data": "Log Received",
15+
"message": null,
16+
"success": true
17+
}
18+
}
19+
}
20+
}
21+
]
22+
}

0 commit comments

Comments
 (0)