From 7e56a9e88ca8b3f958d8afeaf20dded8a999e11e Mon Sep 17 00:00:00 2001 From: benedettadavico Date: Tue, 8 Nov 2022 16:22:39 +0100 Subject: [PATCH] WIP --- .../mixnode/contract-cache-mixnode.test.ts | 28 +++++++++--- .../status/status-gateway.test.ts | 8 ---- .../status/status-mixnode.test.ts | 44 +++++++------------ validator-api/tests/src/config/config.yaml | 3 +- .../tests/src/config/configHandler.ts | 3 +- .../tests/src/endpoints/ContractCache.ts | 24 +++++++++- validator-api/tests/src/endpoints/Status.ts | 9 ++++ 7 files changed, 76 insertions(+), 43 deletions(-) diff --git a/validator-api/tests/functional_test/validator-api/contract_cache/mixnode/contract-cache-mixnode.test.ts b/validator-api/tests/functional_test/validator-api/contract_cache/mixnode/contract-cache-mixnode.test.ts index 8cdcfb3a46..fabb8d0103 100644 --- a/validator-api/tests/functional_test/validator-api/contract_cache/mixnode/contract-cache-mixnode.test.ts +++ b/validator-api/tests/functional_test/validator-api/contract_cache/mixnode/contract-cache-mixnode.test.ts @@ -135,13 +135,31 @@ describe("Get mixnode data", (): void => { it("Get active mixnodes", async (): Promise => { const response = await contract.getActiveMixnodes(); - //TO-DO this test should focus more on checking that the response actually contains active nodes + response.forEach(function (mixnode) { + expect(mixnode.rewarding_details.cost_params.profit_margin_percent).toBeTruthy() + }); }); - //TO-DO figure out a similar type of test solution as above for the following: - // getActiveMixnodesDetailed - // getRewardedMixnodes - // getRewardedMixnodesDetailed + it("Get active mixnodes detailed", async (): Promise => { + const response = await contract.getActiveMixnodesDetailed(); + response.forEach(function (mixnode) { + expect(mixnode.mixnode_details.rewarding_details.cost_params.profit_margin_percent).toBeTruthy() + }); + }); + + it("Get rewarded mixnodes", async (): Promise => { + const response = await contract.getRewardedMixnodes(); + response.forEach(function (mixnode) { + expect(mixnode.rewarding_details.last_rewarded_epoch).toBeTruthy() + }); + }); + + it("Get rewarded mixnodes detailed", async (): Promise => { + const response = await contract.getRewardedMixnodesDetailed(); + response.forEach(function (mixnode) { + expect(mixnode.mixnode_details.rewarding_details.last_rewarded_epoch).toBeTruthy() + }); + }); it("Get blacklisted mixnodes", async (): Promise => { const response = await contract.getBlacklistedMixnodes(); diff --git a/validator-api/tests/functional_test/validator-api/status/status-gateway.test.ts b/validator-api/tests/functional_test/validator-api/status/status-gateway.test.ts index f13bc8be2a..b3153ea80e 100644 --- a/validator-api/tests/functional_test/validator-api/status/status-gateway.test.ts +++ b/validator-api/tests/functional_test/validator-api/status/status-gateway.test.ts @@ -15,14 +15,9 @@ describe("Get gateway data", (): void => { const response = await status.getGatewayHistory(identity_key); response.history.forEach((x) => { - console.log(x.date); - console.log(x.uptime); - expect(typeof x.date).toBe("string"); expect(typeof x.uptime).toBe("number"); }); - console.log(response.identity); - console.log(response.owner); expect(identity_key).toStrictEqual(response.identity); expect(typeof response.owner).toBe("string"); @@ -32,9 +27,6 @@ describe("Get gateway data", (): void => { const identity_key = config.environmnetConfig.gateway_identity; const response = await status.getGatewayCoreCount(identity_key); - console.log(response.count); - console.log(response.identity); - expect(identity_key).toStrictEqual(response.identity); expect(typeof response.count).toBe("number"); }); diff --git a/validator-api/tests/functional_test/validator-api/status/status-mixnode.test.ts b/validator-api/tests/functional_test/validator-api/status/status-mixnode.test.ts index 3270eb11c5..763a8208cb 100644 --- a/validator-api/tests/functional_test/validator-api/status/status-mixnode.test.ts +++ b/validator-api/tests/functional_test/validator-api/status/status-mixnode.test.ts @@ -11,19 +11,16 @@ describe("Get mixnode data", (): void => { }); it("Get a mixnode stake saturation", async (): Promise => { - const mix_id = config.environmnetConfig.mixnode_identity; + const mix_id = config.environmnetConfig.mix_id; const response = await status.getMixnodeStakeSaturation(mix_id); - console.log(response.as_at); - console.log(response.saturation); - expect(typeof response.as_at).toBe("number"); expect(typeof response.saturation).toBe("string"); expect(typeof response.uncapped_saturation).toBe("string"); }); it("Get a mixnode status report", async (): Promise => { - const mix_id = config.environmnetConfig.mixnode_identity; + const mix_id = config.environmnetConfig.mix_id; const response = await status.getMixnodeStatusReport(mix_id); expect(mix_id).toStrictEqual(response.mix_id); @@ -34,57 +31,45 @@ describe("Get mixnode data", (): void => { }); it("Get a mixnode average uptime", async (): Promise => { - const mix_id = config.environmnetConfig.mixnode_identity; + const mix_id = config.environmnetConfig.mix_id; const response = await status.getMixnodeAverageUptime(mix_id); - console.log(response.avg_uptime); - console.log(response.mix_id); - expect(mix_id).toStrictEqual(response.mix_id); expect(typeof response.avg_uptime).toBe("number"); }); it("Get a mixnode history", async (): Promise => { - const mix_id = config.environmnetConfig.mixnode_identity; + const mix_id = config.environmnetConfig.mix_id; const response = await status.getMixnodeHistory(mix_id); response.history.forEach((x) => { - console.log(x.date); - console.log(x.uptime); expect(typeof x.date).toBe("string"); expect(typeof x.uptime).toBe("number"); }); - console.log(response.identity); - console.log(response.owner); expect(mix_id).toStrictEqual(response.mix_id); expect(typeof response.owner).toBe("string"); }); it("Get mixnode core status count", async (): Promise => { - const mix_id = config.environmnetConfig.mixnode_identity; + const mix_id = config.environmnetConfig.mix_id; const response = await status.getMixnodeCoreCount(mix_id); - console.log(response.count); - console.log(response.mix_id); - expect(mix_id).toStrictEqual(response.mix_id); expect(typeof response.count).toBe("number"); }); it("Get a mixnode status", async (): Promise => { - const mix_id = config.environmnetConfig.mixnode_identity; + const mix_id = config.environmnetConfig.mix_id; const response = await status.getMixnodeStatus(mix_id); - console.log(response.status); - expect(response.status).toStrictEqual("active"); }); it("Get a mixnode reward estimation", async (): Promise => { - const mix_id = config.environmnetConfig.mixnode_identity; + const mix_id = config.environmnetConfig.mix_id; const response = await status.getMixnodeRewardComputation(mix_id); //estimation @@ -120,18 +105,16 @@ describe("Get mixnode data", (): void => { }); it("Get a mixnode inclusion probability", async (): Promise => { - const mix_id = config.environmnetConfig.mixnode_identity; + const mix_id = config.environmnetConfig.mix_id; const response = await status.getMixnodeInclusionProbability(mix_id); - console.log(response.in_active); - console.log(response.in_reserve); expect(typeof response.in_active).toBe("string"); expect(typeof response.in_reserve).toBe("string"); }); it("Post to compute mixnode reward estimation", async ():Promise => { - const mix_id = config.environmnetConfig.mixnode_identity; + const mix_id = config.environmnetConfig.mix_id; const payload = {"performance": "0.2"} const response = await status.getMixnodeRewardEstimatedComputation(mix_id, payload); @@ -167,7 +150,7 @@ describe("Get mixnode data", (): void => { it.skip("Post to compute mixnode reward estimation", async ():Promise => { - const mix_id = config.environmnetConfig.mixnode_identity; + const mix_id = config.environmnetConfig.mix_id; const payload = {"performance": "0.7"} const response = await status.getMixnodeRewardEstimatedComputation(mix_id, payload); @@ -175,4 +158,11 @@ describe("Get mixnode data", (): void => { expect(response.estimation.total_node_reward).toContain("986360"); }) + + it("Get mixnode history using identity key", async (): Promise => { + const identity_key = config.environmnetConfig.identity_key; + const response = await status.getMixnodeHistoryWrong(identity_key); + expect(response).toEqual(404) + }); + }); diff --git a/validator-api/tests/src/config/config.yaml b/validator-api/tests/src/config/config.yaml index 5b95458af6..ced430173f 100644 --- a/validator-api/tests/src/config/config.yaml +++ b/validator-api/tests/src/config/config.yaml @@ -4,7 +4,8 @@ common: Content-Type: application/json qa: api_base_url: https://qwerty-validator-api.qa.nymte.ch/api/v1 - mixnode_identity: 7 + mix_id: 7 + identity_key: 4Yr4qmEHd9sgsuQ83191FR2hD88RfsbMmB4tzhhZWriz gateway_identity: 336yuXAeGEgedRfqTJZsG2YV7P13QH1bHv1SjCZYarc9 log_level: error prod: diff --git a/validator-api/tests/src/config/configHandler.ts b/validator-api/tests/src/config/configHandler.ts index adaff2a973..05cb8d85c6 100644 --- a/validator-api/tests/src/config/configHandler.ts +++ b/validator-api/tests/src/config/configHandler.ts @@ -16,7 +16,8 @@ class ConfigHandler { log_level: TLogLevelName; time_zone: string; api_base_url: string; - mixnode_identity: number; + mix_id: number; + identity_key: string; gateway_identity: string; }; diff --git a/validator-api/tests/src/endpoints/ContractCache.ts b/validator-api/tests/src/endpoints/ContractCache.ts index bfc9830ef4..9e6cb95997 100644 --- a/validator-api/tests/src/endpoints/ContractCache.ts +++ b/validator-api/tests/src/endpoints/ContractCache.ts @@ -5,7 +5,8 @@ import { EpochRewardParams, BlacklistedGateways, BlacklistedMixnodes, - CurrentEpoch + CurrentEpoch, + Mixnode } from "../types/ContractCacheTypes"; import { APIClient } from "./abstracts/APIClient"; @@ -43,6 +44,27 @@ export default class ContractCache extends APIClient { return response.data; } + public async getActiveMixnodesDetailed(): Promise { + const response = await this.restClient.sendGet({ + route: `mixnodes/active/detailed`, + }); + return response.data; + } + + public async getRewardedMixnodes(): Promise { + const response = await this.restClient.sendGet({ + route: `mixnodes/rewarded`, + }); + return response.data; + } + + public async getRewardedMixnodesDetailed(): Promise { + const response = await this.restClient.sendGet({ + route: `mixnodes/rewarded/detailed`, + }); + return response.data; + } + public async getBlacklistedMixnodes(): Promise { const response = await this.restClient.sendGet({ route: `mixnodes/blacklisted`, diff --git a/validator-api/tests/src/endpoints/Status.ts b/validator-api/tests/src/endpoints/Status.ts index bb91bce506..da41c23b3d 100644 --- a/validator-api/tests/src/endpoints/Status.ts +++ b/validator-api/tests/src/endpoints/Status.ts @@ -117,6 +117,15 @@ export default class Status extends APIClient { return response.data; } + public async getMixnodeHistoryWrong( + identity_key: string + ): Promise { + const response = await this.restClient.sendGet({ + route: `/status/mixnode/${identity_key}/history`, + }); + return response.status; + } + public async getMixnodeStatus(mix_id: number): Promise { const response = await this.restClient.sendGet({ route: `/mixnode/${mix_id}/status`,