mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-20 12:15:51 +00:00
* rename model tests * rename util tests * turn off `any` complaints in linter * other linter changes * fix xrp <-> drops methods * lint generateAddress * fix rest of tests
86 lines
2.8 KiB
TypeScript
86 lines
2.8 KiB
TypeScript
import { assert } from "chai";
|
|
|
|
import { ValidationError } from "xrpl-local/common/errors";
|
|
|
|
import { verifyDepositPreauth } from "../../src/models/transactions/depositPreauth";
|
|
|
|
/**
|
|
* DepositPreauth Transaction Verification Testing.
|
|
*
|
|
* Providing runtime verification testing for each specific transaction type.
|
|
*/
|
|
describe("DepositPreauth", function () {
|
|
let depositPreauth;
|
|
|
|
beforeEach(function () {
|
|
depositPreauth = {
|
|
TransactionType: "DepositPreauth",
|
|
Account: "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo",
|
|
} as any;
|
|
});
|
|
|
|
it("verifies valid DepositPreauth when only Authorize is provided", function () {
|
|
depositPreauth.Authorize = "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW";
|
|
assert.doesNotThrow(() => verifyDepositPreauth(depositPreauth));
|
|
});
|
|
|
|
it("verifies valid DepositPreauth when only Unauthorize is provided", function () {
|
|
depositPreauth.Unauthorize = "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n";
|
|
assert.doesNotThrow(() => verifyDepositPreauth(depositPreauth));
|
|
});
|
|
|
|
it("throws when both Authorize and Unauthorize are provided", function () {
|
|
depositPreauth.Authorize = "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW";
|
|
depositPreauth.Unauthorize = "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n";
|
|
assert.throws(
|
|
() => verifyDepositPreauth(depositPreauth),
|
|
ValidationError,
|
|
"DepositPreauth: can't provide both Authorize and Unauthorize fields"
|
|
);
|
|
});
|
|
|
|
it("throws when neither Authorize nor Unauthorize are provided", function () {
|
|
assert.throws(
|
|
() => verifyDepositPreauth(depositPreauth),
|
|
ValidationError,
|
|
"DepositPreauth: must provide either Authorize or Unauthorize field"
|
|
);
|
|
});
|
|
|
|
it("throws when Authorize is not a string", function () {
|
|
depositPreauth.Authorize = 1234;
|
|
assert.throws(
|
|
() => verifyDepositPreauth(depositPreauth),
|
|
ValidationError,
|
|
"DepositPreauth: Authorize must be a string"
|
|
);
|
|
});
|
|
|
|
it("throws when an Account attempts to preauthorize its own address", function () {
|
|
depositPreauth.Authorize = depositPreauth.Account;
|
|
assert.throws(
|
|
() => verifyDepositPreauth(depositPreauth),
|
|
ValidationError,
|
|
"DepositPreauth: Account can't preauthorize its own address"
|
|
);
|
|
});
|
|
|
|
it("throws when Unauthorize is not a string", function () {
|
|
depositPreauth.Unauthorize = 1234;
|
|
assert.throws(
|
|
() => verifyDepositPreauth(depositPreauth),
|
|
ValidationError,
|
|
"DepositPreauth: Unauthorize must be a string"
|
|
);
|
|
});
|
|
|
|
it("throws when an Account attempts to unauthorize its own address", function () {
|
|
depositPreauth.Unauthorize = depositPreauth.Account;
|
|
assert.throws(
|
|
() => verifyDepositPreauth(depositPreauth),
|
|
ValidationError,
|
|
"DepositPreauth: Account can't unauthorize its own address"
|
|
);
|
|
});
|
|
});
|