Skip to content

Commit 409bb0f

Browse files
author
柳泽文
committed
fix: session
1 parent 614c4f7 commit 409bb0f

11 files changed

Lines changed: 1201 additions & 0 deletions

File tree

__tests__/e2e/ci.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,3 +135,9 @@ s plan -t ./s.yaml
135135
s info -y -t ./s.yaml
136136
s remove -y -t ./s.yaml
137137
cd ..
138+
139+
echo "test session operations ..."
140+
cd session
141+
export fc_component_function_name=session-$(uname)-$(uname -m)-$RANDSTR
142+
bash ./run
143+
cd ..
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
'use strict';
2+
3+
exports.initializer = (context, callback) => {
4+
console.log('initializing session test function');
5+
callback(null, '');
6+
};
7+
8+
exports.handler = (event, context, callback) => {
9+
console.log('hello session test');
10+
callback(null, 'hello session test');
11+
};

__tests__/e2e/session/run

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
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!"
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
$ErrorActionPreference = "Stop"
2+
3+
Write-Host "test session operations..."
4+
5+
# Deploy function first
6+
Write-Host "Deploying function..."
7+
s deploy -y
8+
9+
# Test create session
10+
Write-Host "Testing create session..."
11+
$createResult = s cli fc3 session create --function-name "fc3-session-$($env:fc_component_function_name)" --qualifier LATEST --sessionTTLInSeconds 3600 --sessionIdleTimeoutInSeconds 1800 -o json | ConvertFrom-Json
12+
$sessionId = $createResult.sessionId
13+
if ([string]::IsNullOrEmpty($sessionId)) {
14+
Write-Error "Failed to create session"
15+
exit 1
16+
}
17+
Write-Host "Created session: $sessionId"
18+
19+
# Test get session
20+
Write-Host "Testing get session..."
21+
$getResult = s cli fc3 session get --function-name "fc3-session-$($env:fc_component_function_name)" --session-id $sessionId --qualifier LATEST -o json | ConvertFrom-Json
22+
if ($null -eq $getResult) {
23+
Write-Error "Failed to get session"
24+
exit 1
25+
}
26+
Write-Host "Get session result: $($getResult | ConvertTo-Json)"
27+
28+
# Test update session
29+
Write-Host "Testing update session..."
30+
$updateResult = s cli fc3 session update --function-name "fc3-session-$($env:fc_component_function_name)" --session-id $sessionId --qualifier LATEST --sessionTTLInSeconds 7200 -o json | ConvertFrom-Json
31+
if ($null -eq $updateResult) {
32+
Write-Error "Failed to update session"
33+
exit 1
34+
}
35+
Write-Host "Update session result: $($updateResult | ConvertTo-Json)"
36+
37+
# Test list sessions
38+
Write-Host "Testing list sessions..."
39+
$listResult = s cli fc3 session list --function-name "fc3-session-$($env:fc_component_function_name)" -o json | ConvertFrom-Json
40+
if ($null -eq $listResult) {
41+
Write-Error "Failed to list sessions"
42+
exit 1
43+
}
44+
Write-Host "List sessions result: $($listResult | ConvertTo-Json)"
45+
46+
# Test list sessions with filters
47+
Write-Host "Testing list sessions with filters..."
48+
$listFilteredResult = s cli fc3 session list --function-name "fc3-session-$($env:fc_component_function_name)" --session-id $sessionId --qualifier LATEST -o json | ConvertFrom-Json
49+
if ($null -eq $listFilteredResult) {
50+
Write-Error "Failed to list sessions with filters"
51+
exit 1
52+
}
53+
Write-Host "List sessions with filters result: $($listFilteredResult | ConvertTo-Json)"
54+
55+
# Test remove session
56+
Write-Host "Testing remove session..."
57+
$removeResult = s cli fc3 session remove --function-name "fc3-session-$($env:fc_component_function_name)" --session-id $sessionId --qualifier LATEST -y -o json
58+
Write-Host "Remove session result: $removeResult"
59+
60+
# Test create session without optional parameters (should use defaults)
61+
Write-Host "Testing create session with default parameters..."
62+
$createResult2 = s cli fc3 session create --function-name "fc3-session-$($env:fc_component_function_name)" --qualifier LATEST -o json | ConvertFrom-Json
63+
$sessionId2 = $createResult2.sessionId
64+
if ([string]::IsNullOrEmpty($sessionId2)) {
65+
Write-Error "Failed to create session with default parameters"
66+
exit 1
67+
}
68+
Write-Host "Created session with defaults: $sessionId2"
69+
70+
# Clean up second session
71+
s cli fc3 session remove --function-name "fc3-session-$($env:fc_component_function_name)" --session-id $sessionId2 --qualifier LATEST -y
72+
73+
# Clean up function
74+
Write-Host "Cleaning up..."
75+
s remove -y
76+
77+
Write-Host "All session tests passed!"

__tests__/e2e/session/s.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
edition: 3.0.0
2+
name: session-test
3+
access: quanxi
4+
5+
vars:
6+
region: ${env('REGION', 'cn-hongkong')}
7+
8+
resources:
9+
sessionTest:
10+
component: ../../..
11+
props:
12+
region: ${vars.region}
13+
functionName: fc3-session-${env('fc_component_function_name', 'test')}
14+
runtime: nodejs18
15+
code: ./code
16+
handler: index.handler
17+
memorySize: 128
18+
timeout: 60
19+
sessionAffinity: GENERATED_COOKIE
20+
instanceLifecycleConfig:
21+
initializer:
22+
handler: index.initializer
23+
timeout: 10

0 commit comments

Comments
 (0)