fix: add test coverage and fixup getters

This commit is contained in:
Tyera Eulberg 2020-02-28 14:23:07 -08:00 committed by Michael Vines
parent fdece1a8a9
commit 825a43fecc
2 changed files with 35 additions and 12 deletions

View File

@ -107,12 +107,12 @@ export class StakeInstruction extends TransactionInstruction {
*/
get stakePublicKey(): PublicKey | null {
switch (this.type) {
case STAKE_INSTRUCTION_LAYOUTS.Initialize:
case STAKE_INSTRUCTION_LAYOUTS.Delegate:
case STAKE_INSTRUCTION_LAYOUTS.Authorize:
case STAKE_INSTRUCTION_LAYOUTS.Split:
case STAKE_INSTRUCTION_LAYOUTS.Withdraw:
case STAKE_INSTRUCTION_LAYOUTS.Deactivate:
case 'Initialize':
case 'Delegate':
case 'Authorize':
case 'Split':
case 'Withdraw':
case 'Deactivate':
return this.keys[0].pubkey;
default:
return null;
@ -126,16 +126,16 @@ export class StakeInstruction extends TransactionInstruction {
*/
get authorizedPublicKey(): PublicKey | null {
switch (this.type) {
case STAKE_INSTRUCTION_LAYOUTS.Delegate:
case 'Delegate':
return this.keys[5].pubkey;
case STAKE_INSTRUCTION_LAYOUTS.Authorize:
case 'Authorize':
return this.keys[2].pubkey;
case STAKE_INSTRUCTION_LAYOUTS.Split:
case 'Split':
return this.keys[2].pubkey;
case STAKE_INSTRUCTION_LAYOUTS.Withdraw:
case 'Withdraw':
return this.keys[4].pubkey;
case STAKE_INSTRUCTION_LAYOUTS.Deactivate:
return this.keys[0].pubkey;
case 'Deactivate':
return this.keys[2].pubkey;
default:
return null;
}

View File

@ -49,6 +49,8 @@ test('createAccountWithSeed', () => {
SystemProgram.programId,
);
expect(transaction.instructions[1].programId).toEqual(StakeProgram.programId);
const stakeInstruction = StakeInstruction.from(transaction.instructions[1]);
expect(stakeInstruction.stakePublicKey).toEqual(newAccountPubkey);
// TODO: Validate transaction contents more
});
@ -71,6 +73,12 @@ test('createAccount', () => {
SystemProgram.programId,
);
expect(transaction.instructions[1].programId).toEqual(StakeProgram.programId);
const stakeInstruction = StakeInstruction.from(transaction.instructions[1]);
expect(stakeInstruction.stakePublicKey).toEqual(newAccount.publicKey);
expect(() => {
StakeInstruction.from(transaction.instructions[0]);
}).toThrow();
// TODO: Validate transaction contents more
});
@ -88,6 +96,9 @@ test('delegate', () => {
expect(transaction.keys).toHaveLength(6);
expect(transaction.programId).toEqual(StakeProgram.programId);
const stakeInstruction = StakeInstruction.from(transaction.instructions[0]);
expect(stakeInstruction.stakePublicKey).toEqual(stake.publicKey);
expect(stakeInstruction.authorizedPublicKey).toEqual(authorized.publicKey);
// TODO: Validate transaction contents more
});
@ -107,6 +118,9 @@ test('authorize', () => {
expect(transaction.keys).toHaveLength(3);
expect(transaction.programId).toEqual(StakeProgram.programId);
const stakeInstruction = StakeInstruction.from(transaction.instructions[0]);
expect(stakeInstruction.stakePublicKey).toEqual(stake.publicKey);
expect(stakeInstruction.authorizedPublicKey).toEqual(authorized.publicKey);
// TODO: Validate transaction contents more
});
@ -128,6 +142,9 @@ test('split', () => {
SystemProgram.programId,
);
expect(transaction.instructions[1].programId).toEqual(StakeProgram.programId);
const stakeInstruction = StakeInstruction.from(transaction.instructions[1]);
expect(stakeInstruction.stakePublicKey).toEqual(stake.publicKey);
expect(stakeInstruction.authorizedPublicKey).toEqual(authorized.publicKey);
// TODO: Validate transaction contents more
});
@ -146,6 +163,9 @@ test('withdraw', () => {
expect(transaction.keys).toHaveLength(5);
expect(transaction.programId).toEqual(StakeProgram.programId);
const stakeInstruction = StakeInstruction.from(transaction.instructions[0]);
expect(stakeInstruction.stakePublicKey).toEqual(stake.publicKey);
expect(stakeInstruction.authorizedPublicKey).toEqual(withdrawer.publicKey);
// TODO: Validate transaction contents more
});
@ -158,6 +178,9 @@ test('deactivate', () => {
expect(transaction.keys).toHaveLength(3);
expect(transaction.programId).toEqual(StakeProgram.programId);
const stakeInstruction = StakeInstruction.from(transaction.instructions[0]);
expect(stakeInstruction.stakePublicKey).toEqual(stake.publicKey);
expect(stakeInstruction.authorizedPublicKey).toEqual(authorized.publicKey);
// TODO: Validate transaction contents more
});