Skip to content

Commit 8780bd2

Browse files
committed
add e2e tests and add them to the workflow
Signed-off-by: Zhan Milenkov <instamenta@abv.bg>
1 parent 6905435 commit 8780bd2

File tree

6 files changed

+103
-1
lines changed

6 files changed

+103
-1
lines changed

.github/workflows/flow-build-application.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ jobs:
8383
- { name: "Node PEM Kill", test-script: "test-${{ needs.env-vars.outputs.e2e-node-pem-kill-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-pem-kill-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-pem-kill-coverage-report }}", cluster-name: "${{ needs.env-vars.outputs.e2e-node-pem-kill-test-subdir }}-${{ github.run_id }}-${{ github.run_attempt }}" }
8484
- { name: "Standard", test-script: "test-${{ needs.env-vars.outputs.e2e-standard-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-standard-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-standard-coverage-report }}", cluster-name: "${{ needs.env-vars.outputs.e2e-standard-test-subdir }}-${{ github.run_id }}-${{ github.run_attempt }}" }
8585
- { name: "Relay", test-script: "test-${{ needs.env-vars.outputs.e2e-relay-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-relay-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-relay-coverage-report }}", cluster-name: "${{ needs.env-vars.outputs.e2e-relay-test-subdir }}-${{ github.run_id }}-${{ github.run_attempt }}" }
86+
- { name: "Block Node", test-script: "test-${{ needs.env-vars.outputs.e2e-block-node-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-block-node-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-block-node-coverage-report }}", cluster-name: "${{ needs.env-vars.outputs.e2e-block-node-test-subdir }}-${{ github.run_id }}-${{ github.run_attempt }}" }
8687
- { name: "Node Update", test-script: "test-${{ needs.env-vars.outputs.e2e-node-update-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-update-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-update-coverage-report }}", cluster-name: "${{ needs.env-vars.outputs.e2e-node-update-test-subdir }}-${{ github.run_id }}-${{ github.run_attempt }}" }
8788
- { name: "Node Upgrade", test-script: "test-${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-upgrade-coverage-report }}", cluster-name: "${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}-${{ github.run_id }}-${{ github.run_attempt }}" }
8889
- { name: "Node PEM Stop", test-script: "test-${{ needs.env-vars.outputs.e2e-node-pem-stop-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-pem-stop-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-pem-stop-coverage-report }}", cluster-name: "${{ needs.env-vars.outputs.e2e-node-pem-stop-test-subdir }}-${{ github.run_id }}-${{ github.run_attempt }}" }
@@ -131,6 +132,7 @@ jobs:
131132
e2e-node-upgrade-test-subdir: ${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}
132133
e2e-node-upgrade-separate-commands-test-subdir: ${{ needs.env-vars.outputs.e2e-node-upgrade-separate-commands-test-subdir }}
133134
e2e-relay-test-subdir: ${{ needs.env-vars.outputs.e2e-relay-test-subdir }}
135+
e2e-block-node-test-subdir: ${{ needs.env-vars.outputs.e2e-block-node-test-subdir }}
134136
e2e-integration-coverage-report: ${{ needs.env-vars.outputs.e2e-integration-coverage-report }}
135137
e2e-dual-cluster-full-coverage-report: ${{ needs.env-vars.outputs.e2e-dual-cluster-full-coverage-report }}
136138
e2e-standard-coverage-report: ${{ needs.env-vars.outputs.e2e-standard-coverage-report }}
@@ -148,6 +150,7 @@ jobs:
148150
e2e-node-upgrade-coverage-report: ${{ needs.env-vars.outputs.e2e-node-upgrade-coverage-report }}
149151
e2e-node-upgrade-separate-commands-coverage-report: ${{ needs.env-vars.outputs.e2e-node-upgrade-separate-commands-coverage-report }}
150152
e2e-relay-coverage-report: ${{ needs.env-vars.outputs.e2e-relay-coverage-report }}
153+
e2e-block-node-coverage-report: ${{ needs.env-vars.outputs.e2e-block-node-coverage-report }}
151154
secrets:
152155
snyk-token: ${{ secrets.SNYK_TOKEN }}
153156
codecov-token: ${{ secrets.CODECOV_TOKEN }}

.github/workflows/flow-pull-request-checks.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ jobs:
8282
- { name: "Node PEM Kill", test-script: "test-${{ needs.env-vars.outputs.e2e-node-pem-kill-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-pem-kill-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-pem-kill-coverage-report }}", cluster-name: "${{ needs.env-vars.outputs.e2e-node-pem-kill-test-subdir }}-${{ github.run_id }}-${{ github.run_attempt }}" }
8383
- { name: "Standard", test-script: "test-${{ needs.env-vars.outputs.e2e-standard-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-standard-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-standard-coverage-report }}", cluster-name: "${{ needs.env-vars.outputs.e2e-standard-test-subdir }}-${{ github.run_id }}-${{ github.run_attempt }}" }
8484
- { name: "Relay", test-script: "test-${{ needs.env-vars.outputs.e2e-relay-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-relay-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-relay-coverage-report }}", cluster-name: "${{ needs.env-vars.outputs.e2e-relay-test-subdir }}-${{ github.run_id }}-${{ github.run_attempt }}" }
85+
- { name: "Block Node", test-script: "test-${{ needs.env-vars.outputs.e2e-block-node-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-block-node-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-block-node-coverage-report }}", cluster-name: "${{ needs.env-vars.outputs.e2e-block-node-test-subdir }}-${{ github.run_id }}-${{ github.run_attempt }}" }
8586
- { name: "Node Update", test-script: "test-${{ needs.env-vars.outputs.e2e-node-update-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-update-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-update-coverage-report }}", cluster-name: "${{ needs.env-vars.outputs.e2e-node-update-test-subdir }}-${{ github.run_id }}-${{ github.run_attempt }}" }
8687
- { name: "Node Upgrade", test-script: "test-${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-upgrade-coverage-report }}", cluster-name: "${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}-${{ github.run_id }}-${{ github.run_attempt }}" }
8788
- { name: "Node PEM Stop", test-script: "test-${{ needs.env-vars.outputs.e2e-node-pem-stop-test-subdir }}", coverage-subdirectory: "${{ needs.env-vars.outputs.e2e-node-pem-stop-test-subdir }}", coverage-report-name: "${{ needs.env-vars.outputs.e2e-node-pem-stop-coverage-report }}", cluster-name: "${{ needs.env-vars.outputs.e2e-node-pem-stop-test-subdir }}-${{ github.run_id }}-${{ github.run_attempt }}" }
@@ -127,6 +128,7 @@ jobs:
127128
e2e-node-upgrade-test-subdir: ${{ needs.env-vars.outputs.e2e-node-upgrade-test-subdir }}
128129
e2e-node-upgrade-separate-commands-test-subdir: ${{ needs.env-vars.outputs.e2e-node-upgrade-separate-commands-test-subdir }}
129130
e2e-relay-test-subdir: ${{ needs.env-vars.outputs.e2e-relay-test-subdir }}
131+
e2e-block-node-test-subdir: ${{ needs.env-vars.outputs.e2e-block-node-test-subdir }}
130132
e2e-integration-coverage-report: ${{ needs.env-vars.outputs.e2e-integration-coverage-report }}
131133
e2e-standard-coverage-report: ${{ needs.env-vars.outputs.e2e-standard-coverage-report }}
132134
e2e-node-pem-stop-coverage-report: ${{ needs.env-vars.outputs.e2e-node-pem-stop-coverage-report }}
@@ -143,6 +145,7 @@ jobs:
143145
e2e-node-upgrade-coverage-report: ${{ needs.env-vars.outputs.e2e-node-upgrade-coverage-report }}
144146
e2e-node-upgrade-separate-commands-coverage-report: ${{ needs.env-vars.outputs.e2e-node-upgrade-separate-commands-coverage-report }}
145147
e2e-relay-coverage-report: ${{ needs.env-vars.outputs.e2e-relay-coverage-report }}
148+
e2e-block-node-coverage-report: ${{ needs.env-vars.outputs.e2e-block-node-coverage-report }}
146149
secrets:
147150
codecov-token: ${{ secrets.CODECOV_TOKEN }}
148151

.github/workflows/zxc-code-analysis.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,11 @@ on:
140140
type: string
141141
required: false
142142
default: "e2e-relay"
143+
e2e-block-node-test-subdir:
144+
description: "E2E Block Node Test Subdirectory:"
145+
type: string
146+
required: false
147+
default: "e2e-block-node"
143148
e2e-integration-coverage-report:
144149
description: "E2E Integration Coverage Report:"
145150
type: string
@@ -225,6 +230,11 @@ on:
225230
type: string
226231
required: false
227232
default: "E2E Relay Tests Coverage Report"
233+
e2e-block-node-coverage-report:
234+
description: "E2E Block Node Coverage Report:"
235+
type: string
236+
required: false
237+
default: "E2E Block Node Tests Coverage Report"
228238
secrets:
229239
snyk-token:
230240
description: "The Snyk access token is used by Snyk to analyze the code for vulnerabilities "
@@ -401,6 +411,13 @@ jobs:
401411
name: ${{ inputs.e2e-relay-coverage-report }}
402412
path: 'coverage/${{ inputs.e2e-relay-test-subdir }}'
403413

414+
- name: Download E2E Block Node Coverage Report
415+
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
416+
if: ${{ (inputs.enable-codecov-analysis || inputs.enable-codacy-coverage) && inputs.enable-e2e-coverage-report && !cancelled() && !failure() }}
417+
with:
418+
name: ${{ inputs.e2e-block-node-coverage-report }}
419+
path: 'coverage/${{ inputs.e2e-block-node-test-subdir }}'
420+
404421
- name: Download E2E Test Report
405422
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
406423
if: ${{ (inputs.enable-codecov-analysis || inputs.enable-codacy-coverage) && inputs.enable-e2e-coverage-report && !cancelled() && !failure() }}

.github/workflows/zxc-env-vars.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ on:
7777
e2e-relay-test-subdir:
7878
description: "E2E Relay Test Subdirectory"
7979
value: ${{ jobs.env-vars.outputs.e2e_relay_test_subdir }}
80+
e2e-block-node-test-subdir:
81+
description: "E2E Block Node Test Subdirectory"
82+
value: ${{ jobs.env-vars.outputs.e2e_block_node_test_subdir }}
8083
e2e-integration-coverage-report:
8184
description: "E2E Integration Tests Coverage Report"
8285
value: ${{ jobs.env-vars.outputs.e2e_integration_coverage_report }}
@@ -128,6 +131,9 @@ on:
128131
e2e-relay-coverage-report:
129132
description: "E2E Relay Tests Coverage Report"
130133
value: ${{ jobs.env-vars.outputs.e2e_relay_coverage_report }}
134+
e2e-block-node-coverage-report:
135+
description: "E2E Block Node Tests Coverage Report"
136+
value: ${{ jobs.env-vars.outputs.e2e_block_node_coverage_report }}
131137

132138
defaults:
133139
run:
@@ -158,6 +164,7 @@ jobs:
158164
e2e_node_upgrade_test_subdir: e2e-node-upgrade
159165
e2e_node_upgrade_separate_commands_test_subdir: e2e-node-upgrade-separate
160166
e2e_relay_test_subdir: e2e-relay
167+
e2e_block_node_test_subdir: e2e-block-node
161168
e2e_integration_coverage_report: "E2E Integration Tests Coverage Report"
162169
e2e_dual_cluster_full_coverage_report: "E2E Dual Cluster Full Tests Coverage Report"
163170
e2e_standard_coverage_report: "E2E Standard Tests Coverage Report"
@@ -176,6 +183,7 @@ jobs:
176183
e2e_node_upgrade_coverage_report: "E2E Node Upgrade Tests Coverage Report"
177184
e2e_node_upgrade_separate_commands_coverage_report: "E2E Node Upgrade - Separate commands Tests Coverage Report"
178185
e2e_relay_coverage_report: "E2E Relay Tests Coverage Report"
186+
e2e_block_node_coverage_report: "E2E Block Node Tests Coverage Report"
179187
steps:
180188
- name: Harden Runner
181189
uses: step-security/harden-runner@c6295a65d1254861815972266d5933fd6e532bdf # v2.11.1

Taskfile.tests.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ tasks:
7777
--ignore 'test/e2e/commands/node*.ts'
7878
--ignore 'test/e2e/commands/separate-node*.ts'
7979
--ignore 'test/e2e/commands/relay*.ts'
80+
--ignore 'test/e2e/commands/block-node.test.ts'
8081
--ignore 'test/e2e/commands/dual-*.ts'
8182
--ignore 'test/e2e/commands/separate-node-add.test.ts'
8283
--ignore 'test/e2e/commands/separate-node-delete.test.ts'
@@ -177,11 +178,18 @@ tasks:
177178

178179
test-e2e-relay:
179180
cmds:
180-
- "{{ .test_prefix }}=\"Mocha E2E Relay Tests\"
181+
- "{{ .test_prefix }}=\"Mocha E2E Block Node Tests\"
181182
{{ .reporter_prefix }}='coverage/e2e-relay'
182183
{{ .mocha_bin }} 'test/e2e/commands/relay.test.ts'
183184
{{ .reporter_options_prefix }}-e2e-relay.xml"
184185

186+
test-e2e-block-node:
187+
cmds:
188+
- "{{ .test_prefix }}=\"Mocha E2E Relay Tests\"
189+
{{ .reporter_prefix }}='coverage/e2e-block-node'
190+
{{ .mocha_bin }} 'test/e2e/commands/block-node.test.ts'
191+
{{ .reporter_options_prefix }}-e2e-block-node.xml"
192+
185193
test-e2e-dual-cluster-full:
186194
cmds:
187195
- "{{ .test_prefix }}=\"Mocha E2E Dual Cluster Full Test\"
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
// SPDX-License-Identifier: Apache-2.0
2+
3+
import {after, afterEach, describe} from 'mocha';
4+
import {expect} from 'chai';
5+
6+
import {Flags as flags} from '../../../src/commands/flags.js';
7+
import {endToEndTestSuite, getTestCluster, HEDERA_PLATFORM_VERSION_TAG} from '../../test-utility.js';
8+
import * as version from '../../../version.js';
9+
import {sleep} from '../../../src/core/helpers.js';
10+
import {Duration} from '../../../src/core/time/duration.js';
11+
import {NamespaceName} from '../../../src/integration/kube/resources/namespace/namespace-name.js';
12+
import {type NetworkNodes} from '../../../src/core/network-nodes.js';
13+
import {container} from 'tsyringe-neo';
14+
import {InjectTokens} from '../../../src/core/dependency-injection/inject-tokens.js';
15+
import {Argv} from '../../helpers/argv-wrapper.js';
16+
import {BlockNodeCommand} from '../../../src/commands/block-node.js';
17+
18+
const testName: string = 'block-node-cmd-e2e';
19+
const namespace: NamespaceName = NamespaceName.of(testName);
20+
const argv: Argv = Argv.getDefaultArgv(namespace);
21+
argv.setArg(flags.namespace, namespace.name);
22+
argv.setArg(flags.releaseTag, HEDERA_PLATFORM_VERSION_TAG);
23+
argv.setArg(flags.nodeAliasesUnparsed, 'node1');
24+
argv.setArg(flags.generateGossipKeys, true);
25+
argv.setArg(flags.generateTlsKeys, true);
26+
argv.setArg(flags.clusterRef, getTestCluster());
27+
argv.setArg(flags.soloChartVersion, version.SOLO_CHART_VERSION);
28+
argv.setArg(flags.force, true);
29+
30+
endToEndTestSuite(testName, argv, {startNodes: false}, bootstrapResp => {
31+
const {
32+
opts: {k8Factory, logger, commandInvoker},
33+
} = bootstrapResp;
34+
35+
describe('BlockNodeCommand', async () => {
36+
const blockNodeCommand: BlockNodeCommand = new BlockNodeCommand(bootstrapResp.opts);
37+
38+
after(async function () {
39+
this.timeout(Duration.ofMinutes(5).toMillis());
40+
await container.resolve<NetworkNodes>(InjectTokens.NetworkNodes).getLogs(namespace);
41+
await k8Factory.default().namespaces().delete(namespace);
42+
});
43+
44+
afterEach(async () => await sleep(Duration.ofMillis(5)));
45+
46+
it('Should succeed with deploy command', async function () {
47+
this.timeout(Duration.ofMinutes(5).toMillis());
48+
49+
try {
50+
await commandInvoker.invoke({
51+
argv: argv,
52+
command: BlockNodeCommand.COMMAND_NAME,
53+
subcommand: 'deploy',
54+
// @ts-expect-error to access private property
55+
callback: async argv => blockNodeCommand.deploy(argv),
56+
});
57+
} catch (error) {
58+
logger.showUserError(error);
59+
expect.fail();
60+
}
61+
});
62+
});
63+
});

0 commit comments

Comments
 (0)