Skip to content

Commit 2d5402b

Browse files
committed
#76: Reset cache in MockVM when cache values should change
1 parent 337fced commit 2d5402b

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

__tests__/mockVM.spec.ts

+19
Original file line numberDiff line numberDiff line change
@@ -222,4 +222,23 @@ describe('MockVM', () => {
222222

223223
expect(System.checkSystemAuthority()).toBe(true);
224224
});
225+
226+
it("should reset cache", () => {
227+
MockVM.setCaller(new chain.caller_data(mockAccount, chain.privilege.user_mode));
228+
expect(Arrays.equal(System.getCaller().caller, mockAccount)).toBe(true);
229+
230+
MockVM.setCaller(new chain.caller_data(mockAccount2, chain.privilege.user_mode));
231+
expect(Arrays.equal(System.getCaller().caller, mockAccount2)).toBe(true);
232+
233+
MockVM.setEntryPoint(1);
234+
MockVM.setContractArguments(mockAccount);
235+
expect(Arrays.equal(System.getArguments().args, mockAccount)).toBe(true);
236+
expect(System.getArguments().entry_point).toBe(1);
237+
238+
MockVM.setContractArguments(mockAccount2);
239+
expect(Arrays.equal(System.getArguments().args, mockAccount2));
240+
241+
MockVM.setEntryPoint(2);
242+
expect(System.getArguments().entry_point).toBe(2);
243+
});
225244
});

assembly/util/mockVM.ts

+3
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export namespace MockVM {
3535
entryPointObj.int32_value = entryPoint;
3636

3737
System.putObject(METADATA_SPACE, 'entry_point', entryPointObj, value.value_type.encode);
38+
System.resetCache();
3839
}
3940

4041
/**
@@ -51,6 +52,7 @@ export namespace MockVM {
5152
*/
5253
export function setContractArguments(contractArguments: Uint8Array): void {
5354
System.putBytes(METADATA_SPACE, 'contract_arguments', contractArguments);
55+
System.resetCache();
5456
}
5557

5658
/**
@@ -129,6 +131,7 @@ export namespace MockVM {
129131
*/
130132
export function setCaller(callerData: chain.caller_data): void {
131133
System.putObject(METADATA_SPACE, 'caller', callerData, chain.caller_data.encode);
134+
System.resetCache();
132135
}
133136

134137
/**

0 commit comments

Comments
 (0)