From f805db59b390ef1154821429bd8cf35ea747fa00 Mon Sep 17 00:00:00 2001
From: Michal Zander <mzander@syncad.com>
Date: Fri, 28 Mar 2025 14:56:37 +0000
Subject: [PATCH] Add tests for new APIs

---
 tests/functional/test_scripts.sh              |  5 +-
 tests/performance/test_scenarios.jmx          | 53 +++++++++++++++++++
 .../block_hash.pat.json                       |  1 +
 .../block_hash.tavern.yaml                    | 21 ++++++++
 4 files changed, 78 insertions(+), 2 deletions(-)
 create mode 100644 tests/tavern/get_btracker_last_synced_block/block_hash.pat.json
 create mode 100644 tests/tavern/get_btracker_last_synced_block/block_hash.tavern.yaml

diff --git a/tests/functional/test_scripts.sh b/tests/functional/test_scripts.sh
index 3ba21f9..f2f2d5b 100755
--- a/tests/functional/test_scripts.sh
+++ b/tests/functional/test_scripts.sh
@@ -42,10 +42,11 @@ while [ $# -gt 0 ]; do
     shift
 done
 
-pushd "../$script_dir"
+
+pushd "$script_dir/.."
 
 echo "Test 1. Generate version..."
-./scripts/generate_version_sql.sh 
+./scripts/generate_version_sql.sh  "$script_dir/.."
 echo "Generate version completed successfully"
 
 popd
diff --git a/tests/performance/test_scenarios.jmx b/tests/performance/test_scenarios.jmx
index 635c8bc..019d41b 100644
--- a/tests/performance/test_scenarios.jmx
+++ b/tests/performance/test_scenarios.jmx
@@ -183,6 +183,59 @@
         </HTTPSamplerProxy>
         <hashTree/>
       </hashTree>
+      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="other" enabled="true">
+        <stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp>
+        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+          <boolProp name="LoopController.continue_forever">false</boolProp>
+          <stringProp name="LoopController.loops">${LOOP_COUNT}</stringProp>
+        </elementProp>
+        <stringProp name="ThreadGroup.num_threads">${THREAD_COUNT}</stringProp>
+        <stringProp name="ThreadGroup.ramp_time"></stringProp>
+        <boolProp name="ThreadGroup.scheduler">false</boolProp>
+        <stringProp name="ThreadGroup.duration"></stringProp>
+        <stringProp name="ThreadGroup.delay"></stringProp>
+        <boolProp name="ThreadGroup.same_user_on_next_iteration">false</boolProp>
+      </ThreadGroup>
+      <hashTree>
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="get_btracker_last_synced_block" enabled="true">
+          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+            <collectionProp name="Arguments.arguments"/>
+          </elementProp>
+          <stringProp name="HTTPSampler.domain"></stringProp>
+          <stringProp name="HTTPSampler.port"></stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+          <stringProp name="HTTPSampler.path">rpc/get_btracker_last_synced_block</stringProp>
+          <stringProp name="HTTPSampler.method">POST</stringProp>
+          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+          <stringProp name="HTTPSampler.response_timeout"></stringProp>
+        </HTTPSamplerProxy>
+        <hashTree/>
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="get_btracker_version" enabled="true">
+          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+            <collectionProp name="Arguments.arguments"/>
+          </elementProp>
+          <stringProp name="HTTPSampler.domain"></stringProp>
+          <stringProp name="HTTPSampler.port"></stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+          <stringProp name="HTTPSampler.path">rpc/get_btracker_version</stringProp>
+          <stringProp name="HTTPSampler.method">POST</stringProp>
+          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
+          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
+          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
+          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
+          <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
+          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+          <stringProp name="HTTPSampler.response_timeout"></stringProp>
+        </HTTPSamplerProxy>
+        <hashTree/>
+      </hashTree>
       <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="get_history_aggregation" enabled="true">
         <stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp>
         <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
diff --git a/tests/tavern/get_btracker_last_synced_block/block_hash.pat.json b/tests/tavern/get_btracker_last_synced_block/block_hash.pat.json
new file mode 100644
index 0000000..d4375a2
--- /dev/null
+++ b/tests/tavern/get_btracker_last_synced_block/block_hash.pat.json
@@ -0,0 +1 @@
+5000000
\ No newline at end of file
diff --git a/tests/tavern/get_btracker_last_synced_block/block_hash.tavern.yaml b/tests/tavern/get_btracker_last_synced_block/block_hash.tavern.yaml
new file mode 100644
index 0000000..4683229
--- /dev/null
+++ b/tests/tavern/get_btracker_last_synced_block/block_hash.tavern.yaml
@@ -0,0 +1,21 @@
+---
+  test_name: btracker PostgREST
+
+  marks:
+    - patterntest
+
+  includes:
+    - !include ../common.yaml
+
+  stages:
+    - name: test
+      request:
+        url: "{service.proto:s}://{service.server:s}:{service.port}/rpc/get_btracker_last_synced_block"
+        method: POST  
+        headers:
+          content-type: application/json
+          accept: application/json  
+      response:
+        status_code: 200
+        verify_response_with:
+          function: validate_response:compare_rest_response_with_pattern
-- 
GitLab