1+ #! /bin/bash
2+
3+ set -e
4+ set -v
5+
6+ echo " test session operations..."
7+
8+ # Deploy function first
9+ echo " Deploying function..."
10+ s deploy -y
11+
12+ # Test create session
13+ echo " Testing create session..."
14+ sessionId=$( s cli fc3 session create --function-name fc3-session-${fc_component_function_name:- test} --qualifier LATEST --sessionTTLInSeconds 3600 --sessionIdleTimeoutInSeconds 1800 -o json | jq -r ' ."sessionId"' )
15+ if [ -z " $sessionId " ]; then
16+ echo " Failed to create session"
17+ exit 1
18+ fi
19+ echo " Created session: $sessionId "
20+
21+ # Test get session
22+ echo " Testing get session..."
23+ getSessionResult=$( s cli fc3 session get --function-name fc3-session-${fc_component_function_name:- test} --session-id $sessionId --qualifier LATEST -o json)
24+ if [ -z " $getSessionResult " ]; then
25+ echo " Failed to get session"
26+ exit 1
27+ fi
28+ echo " Get session result: $getSessionResult "
29+
30+ # Test update session (update sessionTTLInSeconds)
31+ echo " Testing update session with sessionTTLInSeconds..."
32+ updateResult=$( s cli fc3 session update --function-name fc3-session-${fc_component_function_name:- test} --session-id $sessionId --qualifier LATEST --sessionTTLInSeconds 7200 -o json)
33+ if [ -z " $updateResult " ]; then
34+ echo " Failed to update session with sessionTTLInSeconds"
35+ exit 1
36+ fi
37+ echo " Update session result: $updateResult "
38+
39+ # Test update session (update sessionIdleTimeoutInSeconds)
40+ echo " Testing update session with sessionIdleTimeoutInSeconds..."
41+ updateResult2=$( s cli fc3 session update --function-name fc3-session-${fc_component_function_name:- test} --session-id $sessionId --qualifier LATEST --sessionIdleTimeoutInSeconds 3600 -o json)
42+ if [ -z " $updateResult2 " ]; then
43+ echo " Failed to update session with sessionIdleTimeoutInSeconds"
44+ exit 1
45+ fi
46+ echo " Update session result: $updateResult2 "
47+
48+ # Test list sessions
49+ echo " Testing list sessions..."
50+ listResult=$( s cli fc3 session list --function-name fc3-session-${fc_component_function_name:- test} -o json)
51+ if [ -z " $listResult " ]; then
52+ echo " Failed to list sessions"
53+ exit 1
54+ fi
55+ echo " List sessions result: $listResult "
56+
57+ # Test list sessions with filters
58+ echo " Testing list sessions with filters..."
59+ listFilteredResult=$( s cli fc3 session list --function-name fc3-session-${fc_component_function_name:- test} --session-id $sessionId --qualifier LATEST -o json)
60+ if [ -z " $listFilteredResult " ]; then
61+ echo " Failed to list sessions with filters"
62+ exit 1
63+ fi
64+ echo " List sessions with filters result: $listFilteredResult "
65+
66+ # Test list sessions with session-status filter
67+ echo " Testing list sessions with session-status filter..."
68+ listStatusResult=$( s cli fc3 session list --function-name fc3-session-${fc_component_function_name:- test} --session-status Active -o json)
69+ if [ -z " $listStatusResult " ]; then
70+ echo " Failed to list sessions with session-status filter"
71+ exit 1
72+ fi
73+ echo " List sessions with session-status filter result: $listStatusResult "
74+
75+ # Test list sessions with limit parameter
76+ echo " Testing list sessions with limit parameter..."
77+ listLimitResult=$( s cli fc3 session list --function-name fc3-session-${fc_component_function_name:- test} --limit 5 -o json)
78+ if [ -z " $listLimitResult " ]; then
79+ echo " Failed to list sessions with limit parameter"
80+ exit 1
81+ fi
82+ echo " List sessions with limit parameter result: $listLimitResult "
83+
84+ # Test remove session
85+ echo " Testing remove session..."
86+ removeResult=$( s cli fc3 session remove --function-name fc3-session-${fc_component_function_name:- test} --session-id $sessionId --qualifier LATEST -y -o json)
87+ echo " Remove session result: $removeResult "
88+
89+ # Verify session is removed by trying to get it (should fail)
90+ echo " Verifying session is removed..."
91+ getRemovedSessionResult=$( s cli fc3 session get --function-name fc3-session-${fc_component_function_name:- test} --session-id $sessionId --qualifier LATEST -o json 2>&1 || true)
92+ if [[ $getRemovedSessionResult == * " not found" * ]] || [[ $getRemovedSessionResult == * " not exist" * ]]; then
93+ echo " Session successfully removed"
94+ else
95+ echo " Session removal verification failed: $getRemovedSessionResult "
96+ # Don't exit here as this might be a timing issue
97+ fi
98+
99+ # Test create session without optional parameters (should use defaults)
100+ echo " Testing create session with default parameters..."
101+ sessionId2=$( s cli fc3 session create --function-name fc3-session-${fc_component_function_name:- test} --qualifier LATEST -o json | jq -r ' ."sessionId"' )
102+ if [ -z " $sessionId2 " ]; then
103+ echo " Failed to create session with default parameters"
104+ exit 1
105+ fi
106+ echo " Created session with defaults: $sessionId2 "
107+
108+ # Test create session with only sessionTTLInSeconds
109+ echo " Testing create session with only sessionTTLInSeconds..."
110+ sessionId3=$( s cli fc3 session create --function-name fc3-session-${fc_component_function_name:- test} --qualifier LATEST --sessionTTLInSeconds 1800 -o json | jq -r ' ."sessionId"' )
111+ if [ -z " $sessionId3 " ]; then
112+ echo " Failed to create session with only sessionTTLInSeconds"
113+ exit 1
114+ fi
115+ echo " Created session with only sessionTTLInSeconds: $sessionId3 "
116+
117+ # Test create session with only sessionIdleTimeoutInSeconds
118+ echo " Testing create session with only sessionIdleTimeoutInSeconds..."
119+ sessionId4=$( s cli fc3 session create --function-name fc3-session-${fc_component_function_name:- test} --qualifier LATEST --sessionIdleTimeoutInSeconds 900 -o json | jq -r ' ."sessionId"' )
120+ if [ -z " $sessionId4 " ]; then
121+ echo " Failed to create session with only sessionIdleTimeoutInSeconds"
122+ exit 1
123+ fi
124+ echo " Created session with only sessionIdleTimeoutInSeconds: $sessionId4 "
125+
126+ # Clean up additional sessions
127+ s cli fc3 session remove --function-name fc3-session-${fc_component_function_name:- test} --session-id $sessionId2 --qualifier LATEST -y
128+ s cli fc3 session remove --function-name fc3-session-${fc_component_function_name:- test} --session-id $sessionId3 --qualifier LATEST -y
129+ s cli fc3 session remove --function-name fc3-session-${fc_component_function_name:- test} --session-id $sessionId4 --qualifier LATEST -y
130+
131+ # Clean up function
132+ echo " Cleaning up..."
133+ s remove -y
134+
135+ echo " All session tests passed!"
0 commit comments