@@ -3,11 +3,10 @@ import { DashboardPage } from './dashboard';
33
44test . describe ( 'Campaign Lifecycle' , ( ) => {
55 test . beforeEach ( async ( { page } ) => {
6- // Mock Freighter API
76 await page . addInitScript ( ( ) => {
87 ( window as any ) . freighter = {
98 isConnected : ( ) => Promise . resolve ( true ) ,
10- requestAccess : ( ) => Promise . resolve ( "GBAF7Y6PJY6PY6PY6PY6PY6PY6PY6PY6PY6PY6PY6PY6PY6PY6PY6PY " ) ,
9+ requestAccess : ( ) => Promise . resolve ( "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA " ) ,
1110 getNetworkDetails : ( ) => Promise . resolve ( {
1211 networkPassphrase : "Test SDF Network ; September 2015" ,
1312 sorobanRpcUrl : "https://soroban-testnet.stellar.org:443"
@@ -19,47 +18,45 @@ test.describe('Campaign Lifecycle', () => {
1918
2019 test ( 'should complete a full campaign lifecycle (Create -> Pledge -> Funded -> Claim)' , async ( { page } ) => {
2120 const dashboard = new DashboardPage ( page ) ;
22- const campaignTitle = `E2E Campaign ${ Date . now ( ) } ` ;
23- const creator = "GBAF7Y6PJY6PY6PY6PY6PY6PY6PY6PY6PY6PY6PY6PY6PY6PY6PY6PY " ;
21+ const campaignTitle = `E2E Test Campaign ${ Date . now ( ) } ` ;
22+ const creator = "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA " ;
2423
2524 await dashboard . goto ( ) ;
2625
27- // 1. Create Campaign with a very short deadline
2826 await test . step ( 'Create Campaign' , async ( ) => {
2927 await dashboard . creatorInput . fill ( creator ) ;
3028 await dashboard . titleInput . fill ( campaignTitle ) ;
31- await dashboard . descriptionInput . fill ( 'This is a test campaign created by Playwright E2E test suite .' ) ;
29+ await dashboard . descriptionInput . fill ( 'Playwright E2E full lifecycle test campaign .' ) ;
3230 await dashboard . targetAmountInput . fill ( '100' ) ;
33- await dashboard . deadlineHoursInput . fill ( '0.001' ) ; // ~3.6 seconds
31+ await dashboard . deadlineHoursInput . fill ( '0.001' ) ;
32+
3433 await dashboard . createButton . click ( ) ;
3534 await expect ( page . locator ( `text=${ campaignTitle } ` ) ) . toBeVisible ( ) ;
3635 } ) ;
3736
38- // 2. Select the campaign
3937 await test . step ( 'Select Campaign' , async ( ) => {
4038 await dashboard . selectCampaign ( campaignTitle ) ;
4139 await expect ( page . locator ( '.detail-panel h2' ) ) . toHaveText ( campaignTitle ) ;
4240 } ) ;
4341
44- // 3. Connect Wallet
42+ // Connect Wallet
4543 await test . step ( 'Connect Wallet' , async ( ) => {
4644 await dashboard . connectWallet ( ) ;
4745 } ) ;
4846
49- // 4. Submit Pledge (Completes Funding)
5047 await test . step ( 'Submit Pledge' , async ( ) => {
5148 await dashboard . pledge ( '100' ) ;
5249 await expect ( page . locator ( '.detail-stat:has-text("Remaining") strong' ) ) . toHaveText ( '0' ) ;
50+ await expect ( page . locator ( 'text=Funded' ) ) . toBeVisible ( ) ;
5351 } ) ;
5452
55- // 5. Wait for deadline and Claim
5653 await test . step ( 'Wait for Deadline and Claim' , async ( ) => {
57- // Wait for the deadline to pass
58- await page . waitForTimeout ( 5000 ) ;
54+ await page . waitForTimeout ( 4000 ) ;
5955
60- // Re-select to refresh status or just try to claim
6156 await dashboard . claim ( ) ;
57+
6258 await expect ( page . locator ( 'text=Campaign claimed successfully' ) ) . toBeVisible ( ) ;
59+ await expect ( page . locator ( '.detail-stat:has-text("Status")' ) ) . toContainText ( 'Claimed' ) ;
6360 } ) ;
6461 } ) ;
65- } ) ;
62+ } ) ;
0 commit comments