Skip to content

Commit 72527e9

Browse files
committed
fixing site import for site catalog; e2e tests updated; new workflow
1 parent 2b95516 commit 72527e9

3 files changed

Lines changed: 139 additions & 6 deletions

File tree

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: E2E Shell Tests
2+
3+
on:
4+
schedule:
5+
- cron: '0 3 * * *' # Run at 3 AM UTC daily
6+
workflow_dispatch:
7+
8+
jobs:
9+
e2e-shell-tests:
10+
runs-on: ubuntu-latest
11+
environment: e2e-dev
12+
timeout-minutes: 30
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- uses: actions/setup-node@v4
17+
with:
18+
node-version: '24'
19+
20+
- name: Check for required secrets and vars
21+
id: check-secrets
22+
env:
23+
SFCC_CLIENT_ID: ${{ vars.SFCC_CLIENT_ID }}
24+
SFCC_CLIENT_SECRET: ${{ secrets.SFCC_CLIENT_SECRET }}
25+
TEST_REALM: ${{ vars.TEST_REALM }}
26+
SFCC_ACCOUNT_MANAGER_HOST: ${{ vars.SFCC_ACCOUNT_MANAGER_HOST }}
27+
SFCC_SANDBOX_API_HOST: ${{ vars.SFCC_SANDBOX_API_HOST }}
28+
SFCC_SHORTCODE: ${{ vars.SFCC_SHORTCODE }}
29+
run: |
30+
missing=""
31+
[ -z "$SFCC_CLIENT_ID" ] && missing="$missing SFCC_CLIENT_ID"
32+
[ -z "$SFCC_CLIENT_SECRET" ] && missing="$missing SFCC_CLIENT_SECRET"
33+
[ -z "$TEST_REALM" ] && missing="$missing TEST_REALM"
34+
[ -z "$SFCC_ACCOUNT_MANAGER_HOST" ] && missing="$missing SFCC_ACCOUNT_MANAGER_HOST"
35+
[ -z "$SFCC_SANDBOX_API_HOST" ] && missing="$missing SFCC_SANDBOX_API_HOST"
36+
[ -z "$SFCC_SHORTCODE" ] && missing="$missing SFCC_SHORTCODE"
37+
38+
if [ -z "$missing" ]; then
39+
echo "has-secrets=true" >> $GITHUB_OUTPUT
40+
else
41+
echo "has-secrets=false" >> $GITHUB_OUTPUT
42+
echo "E2E shell tests skipped - missing required variables:$missing" >> $GITHUB_STEP_SUMMARY
43+
fi
44+
45+
- name: Setup pnpm
46+
if: steps.check-secrets.outputs.has-secrets == 'true'
47+
uses: pnpm/action-setup@v4
48+
with:
49+
version: 10.17.1
50+
51+
- name: Get pnpm store directory
52+
if: steps.check-secrets.outputs.has-secrets == 'true'
53+
shell: bash
54+
run: |
55+
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
56+
57+
- name: Setup pnpm cache
58+
if: steps.check-secrets.outputs.has-secrets == 'true'
59+
uses: actions/cache@v4
60+
with:
61+
path: ${{ env.STORE_PATH }}
62+
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
63+
restore-keys: |
64+
${{ runner.os }}-pnpm-store-
65+
66+
- name: Install dependencies
67+
if: steps.check-secrets.outputs.has-secrets == 'true'
68+
run: pnpm install --frozen-lockfile
69+
70+
- name: Build packages
71+
if: steps.check-secrets.outputs.has-secrets == 'true'
72+
run: pnpm -r run build
73+
74+
- name: Run E2E Shell Tests
75+
if: steps.check-secrets.outputs.has-secrets == 'true'
76+
env:
77+
SFCC_CLIENT_ID: ${{ vars.SFCC_CLIENT_ID }}
78+
SFCC_CLIENT_SECRET: ${{ secrets.SFCC_CLIENT_SECRET }}
79+
SFCC_ACCOUNT_MANAGER_HOST: ${{ vars.SFCC_ACCOUNT_MANAGER_HOST }}
80+
SFCC_SANDBOX_API_HOST: ${{ vars.SFCC_SANDBOX_API_HOST }}
81+
SFCC_SHORTCODE: ${{ vars.SFCC_SHORTCODE }}
82+
TEST_REALM: ${{ vars.TEST_REALM }}
83+
run: |
84+
echo "Running E2E shell tests with realm: ${TEST_REALM}"
85+
cd packages/b2c-cli
86+
./test/functional/e2e_cli_test.sh

packages/b2c-cli/test/functional/e2e_cli_test.sh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ CLI="$SCRIPT_DIR/../../bin/run.js"
1919

2020
# Fixtures paths
2121
CARTRIDGE_PATH="$SCRIPT_DIR/fixtures/cartridges"
22-
SITE_ARCHIVE_PATH="$SCRIPT_DIR/fixtures/site_archive/TestSite"
22+
SITE_ARCHIVE_PATH="$SCRIPT_DIR/fixtures/site_archive"
2323

2424
# Test configuration
2525
SITE_ID="TestSite"
@@ -136,6 +136,7 @@ echo ""
136136
################################################################################
137137
# 5. Run Search Index Job
138138
################################################################################
139+
sleep 4
139140
echo "Step 5: Running search index job..."
140141

141142
$CLI job run sfcc-search-index-product-full-update \
@@ -155,10 +156,8 @@ echo "Step 6: Creating SLAS client..."
155156
# Construct tenant ID from realm and instance number
156157
TENANT_ID="${TEST_REALM}_${INSTANCE_NUM}"
157158

158-
# Generate a unique SLAS client ID
159-
SLAS_CLIENT_ID="e2e-test-$(date +%s)-$(openssl rand -hex 4)"
160-
161-
SLAS_CREATE_RESULT=$($CLI slas client create "$SLAS_CLIENT_ID" \
159+
# Let the CLI auto-generate a UUID4 client ID
160+
SLAS_CREATE_RESULT=$($CLI slas client create \
162161
--tenant-id "$TENANT_ID" \
163162
--channels "$SITE_ID" \
164163
--default-scopes \
@@ -168,7 +167,8 @@ SLAS_CREATE_RESULT=$($CLI slas client create "$SLAS_CLIENT_ID" \
168167
echo "DEBUG: SLAS create result:"
169168
echo "$SLAS_CREATE_RESULT" | jq .
170169

171-
# The JSON output is a ClientOutput object with secret field
170+
# Extract client ID and secret from response
171+
SLAS_CLIENT_ID=$(echo "$SLAS_CREATE_RESULT" | jq -r '.clientId')
172172
SLAS_SECRET=$(echo "$SLAS_CREATE_RESULT" | jq -r '.secret')
173173

174174
if [ -z "$SLAS_SECRET" ] || [ "$SLAS_SECRET" == "null" ]; then
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<preferences xmlns="http://www.demandware.com/xml/impex/preferences/2007-03-31">
3+
<standard-preferences>
4+
<all-instances>
5+
<preference preference-id="AccountNumberRetentionDays">30</preference>
6+
<preference preference-id="AddProductToBasketBehavior">IncrementQuantities</preference>
7+
<preference preference-id="BogoProrationEnabled">legacy</preference>
8+
<preference preference-id="BonusProductProrationEnabled">true</preference>
9+
<preference preference-id="CouponGeneratorIncludeDashes">true</preference>
10+
<preference preference-id="CouponGeneratorIncludeVowels">true</preference>
11+
<preference preference-id="EnableSiteOrderNumbers">false</preference>
12+
<preference preference-id="IntegrationOrderCenterIncludeSite">true</preference>
13+
<preference preference-id="SiteCatalog">TestCatalog</preference>
14+
<preference preference-id="SiteCurrencies">USD</preference>
15+
<preference preference-id="SiteCustomerList">TestSite</preference>
16+
<preference preference-id="SiteDefaultLocale">default</preference>
17+
<preference preference-id="SiteLibrary">TestSite</preference>
18+
<preference preference-id="SiteLocales">default</preference>
19+
<preference preference-id="SiteTimezone">Etc/UTC</preference>
20+
</all-instances>
21+
<development>
22+
<preference preference-id="ExternallyPublishProductIndex">false</preference>
23+
<preference preference-id="MergedVariationGroupsDisplayMode">false</preference>
24+
<preference preference-id="RobotsTxtContent"/>
25+
<preference preference-id="RobotsTxtMode">Cartridge</preference>
26+
</development>
27+
<staging>
28+
<preference preference-id="ExternallyPublishProductIndex">false</preference>
29+
<preference preference-id="MergedVariationGroupsDisplayMode">false</preference>
30+
<preference preference-id="RobotsTxtContent"/>
31+
<preference preference-id="RobotsTxtMode">Cartridge</preference>
32+
</staging>
33+
<production>
34+
<preference preference-id="ExternallyPublishProductIndex">false</preference>
35+
<preference preference-id="MergedVariationGroupsDisplayMode">false</preference>
36+
<preference preference-id="RobotsTxtContent"/>
37+
<preference preference-id="RobotsTxtMode">Cartridge</preference>
38+
</production>
39+
</standard-preferences>
40+
<custom-preferences>
41+
<all-instances/>
42+
<development/>
43+
<staging/>
44+
<production/>
45+
</custom-preferences>
46+
</preferences>
47+

0 commit comments

Comments
 (0)