@@ -7,113 +7,100 @@ import { AddressInfoProgram } from '../target/types/address_info_program';
77
88describe ( 'Address Info Program' , ( ) => {
99 // Constants
10- const IDL = require ( '../target/idl/address_info_program.json' ) ;
11- const PROGRAM_ID = new PublicKey ( IDL . address ) ;
12- const ADDRESS_SEED = 'address_info' ;
10+ const PROGRAM_ID = new PublicKey ( 'ChA1o71vBEwkYNs6FnkmG4cxyZWtWkbXSEJ6xP2zaJAq' ) ;
1311
1412 // Test setup
15- let addressProgram : Program < AddressInfoProgram > ;
13+ let program : Program < AddressInfoProgram > ;
1614 let provider : BankrunProvider ;
17- let owner : Wallet ;
1815 let addressInfoPda : PublicKey ;
1916 let addressInfoBump : number ;
17+ let owner : Wallet ;
2018
2119 before ( async ( ) => {
22- // Start bankrun with Anchor workspace
23- const context = await startAnchor (
24- '.' , // Path to Anchor.toml
25- [ ] , // No extra programs needed
26- [ ] , // No extra accounts needed
27- ) ;
28-
29- // Set up provider and program
30- provider = new BankrunProvider ( context ) ;
31- addressProgram = new Program ( IDL , provider ) ;
32-
33- owner = provider . wallet as Wallet ;
34-
35- // Find PDA for address info account
36- [ addressInfoPda , addressInfoBump ] = PublicKey . findProgramAddressSync ( [ Buffer . from ( ADDRESS_SEED ) , owner . publicKey . toBuffer ( ) ] , PROGRAM_ID ) ;
20+ try {
21+ // Initialize program test environment
22+ const context = await startAnchor (
23+ '.' , // Path to Anchor.toml
24+ [ ] , // No extra programs needed
25+ [ ] , // No
26+ ) ;
27+
28+ // Set up provider and program
29+ provider = new BankrunProvider ( context ) ;
30+
31+ // Get program from workspace
32+ const idl = require ( '../target/idl/address_info_program.json' ) ;
33+ program = new Program ( idl , provider ) ;
34+
35+ owner = provider . wallet as Wallet ;
36+
37+ // Find PDA
38+ [ addressInfoPda , addressInfoBump ] = PublicKey . findProgramAddressSync ( [ Buffer . from ( 'address_info' ) , owner . publicKey . toBuffer ( ) ] , PROGRAM_ID ) ;
39+ } catch ( error ) {
40+ console . error ( 'Setup failed:' , error ) ;
41+ throw error ;
42+ }
3743 } ) ;
3844
3945 describe ( 'initialize' , ( ) => {
4046 it ( 'creates new address info' , async ( ) => {
41- const addressData = {
42- houseNumber : 42 ,
43- streetNumber : 1000 ,
44- zipCode : 12345 ,
45- countryCode : 1 ,
46- } ;
47+ try {
48+ const addressData = {
49+ houseNumber : 42 ,
50+ streetNumber : 1000 ,
51+ zipCode : 12345 ,
52+ countryCode : 1 ,
53+ } ;
54+
55+ // Initialize address info account
56+ await program . methods
57+ . initialize ( addressData . houseNumber , addressData . streetNumber , addressData . zipCode , addressData . countryCode )
58+ . accounts ( {
59+ owner : owner . publicKey ,
60+ state : addressInfoPda ,
61+ } )
62+ . rpc ( ) ;
4763
48- // Initialize address info account
49- await addressProgram . methods
50- . initialize ( addressData . houseNumber , addressData . streetNumber , addressData . zipCode , addressData . countryCode )
51- . accounts ( {
52- owner : owner . publicKey ,
53- addressInfo : addressInfoPda ,
54- systemProgram : SystemProgram . programId ,
55- } )
56- . rpc ( ) ;
64+ // Verify account data
65+ const account = await program . account . addressInfoState . fetch ( addressInfoPda ) ;
5766
58- // Fetch and verify account data
59- const account = await addressProgram . account . addressInfoState . fetch ( addressInfoPda ) ;
67+ expect ( account . owner . toString ( ) ) . to . equal ( provider . wallet . publicKey . toString ( ) ) ;
68+ expect ( account . houseNumber ) . to . equal ( addressData . houseNumber ) ;
69+ expect ( account . streetNumber ) . to . equal ( addressData . streetNumber ) ;
70+ expect ( account . zipCode ) . to . equal ( addressData . zipCode ) ;
71+ expect ( account . countryCode ) . to . equal ( addressData . countryCode ) ;
72+ expect ( account . bump ) . to . equal ( addressInfoBump ) ;
6073
61- expect ( account . owner . equals ( owner . publicKey ) ) . to . be . true ;
62- expect ( account . houseNumber ) . to . equal ( addressData . houseNumber ) ;
63- expect ( account . streetNumber ) . to . equal ( addressData . streetNumber ) ;
64- expect ( account . zipCode ) . to . equal ( addressData . zipCode ) ;
65- expect ( account . countryCode ) . to . equal ( addressData . countryCode ) ;
66- expect ( account . bump ) . to . equal ( addressInfoBump ) ;
74+ console . log ( 'Address info initialized successfully' ) ;
75+ } catch ( error ) {
76+ console . error ( 'Initialize failed:' , error ) ;
77+ throw error ;
78+ }
6779 } ) ;
6880
6981 it ( 'fails to initialize existing account' , async ( ) => {
70- const addressData = {
71- houseNumber : 43 ,
72- streetNumber : 1001 ,
73- zipCode : 12346 ,
74- countryCode : 2 ,
75- } ;
76-
7782 try {
78- await addressProgram . methods
83+ const addressData = {
84+ houseNumber : 43 ,
85+ streetNumber : 1001 ,
86+ zipCode : 12346 ,
87+ countryCode : 2 ,
88+ } ;
89+
90+ await program . methods
7991 . initialize ( addressData . houseNumber , addressData . streetNumber , addressData . zipCode , addressData . countryCode )
8092 . accounts ( {
81- owner : owner . publicKey ,
82- addressInfo : addressInfoPda ,
93+ owner : provider . wallet . publicKey ,
94+ state : addressInfoPda ,
8395 systemProgram : SystemProgram . programId ,
8496 } )
8597 . rpc ( ) ;
8698
8799 expect . fail ( 'Should have failed' ) ;
88- } catch ( err ) {
89- expect ( err ) . to . exist ;
100+ } catch ( error ) {
101+ expect ( error ) . to . exist ;
102+ console . log ( 'Failed to initialize existing account as expected' ) ;
90103 }
91104 } ) ;
92105 } ) ;
93-
94- describe ( 'edit' , ( ) => {
95- it ( 'edits existing address info' , async ( ) => {
96- const newData = {
97- houseNumber : 44 ,
98- streetNumber : 1002 ,
99- zipCode : 12347 ,
100- countryCode : 3 ,
101- } ;
102-
103- await addressProgram . methods
104- . edit ( newData . houseNumber , newData . streetNumber , newData . zipCode , newData . countryCode )
105- . accounts ( {
106- owner : owner . publicKey ,
107- addressInfo : addressInfoPda ,
108- } )
109- . rpc ( ) ;
110-
111- const account = await addressProgram . account . addressInfoState . fetch ( addressInfoPda ) ;
112-
113- expect ( account . houseNumber ) . to . equal ( newData . houseNumber ) ;
114- expect ( account . streetNumber ) . to . equal ( newData . streetNumber ) ;
115- expect ( account . zipCode ) . to . equal ( newData . zipCode ) ;
116- expect ( account . countryCode ) . to . equal ( newData . countryCode ) ;
117- } ) ;
118- } ) ;
119106} ) ;
0 commit comments