Skip to content

Commit 1a9b15f

Browse files
authored
Merge pull request #117 from Obiajulu-gif/stream_storage
contracts/stream_contract: update stream storage tests only
2 parents aefb105 + 539be2a commit 1a9b15f

3 files changed

Lines changed: 2975 additions & 2049 deletions

File tree

.github/workflows/security.yml

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,22 @@ jobs:
2020
- name: Setup Node.js
2121
uses: actions/setup-node@v4
2222
with:
23+
node-version: '20.19.0'
24+
cache: 'npm'
25+
26+
- name: Install dependencies
27+
env:
28+
HUSKY: 0
29+
run: npm ci
30+
31+
- name: Run npm audit (production dependencies)
32+
run: npm audit --omit=dev --audit-level=critical
33+
34+
- name: Check for known vulnerabilities in frontend (production dependencies)
35+
run: npm audit --workspace=frontend --omit=dev --audit-level=critical
36+
37+
- name: Check for known vulnerabilities in backend (production dependencies)
38+
run: npm audit --workspace=backend --omit=dev --audit-level=critical
2339
node-version: '20'
2440
cache: 'npm'
2541

@@ -53,16 +69,16 @@ jobs:
5369
language: [ 'javascript', 'typescript' ]
5470

5571
steps:
56-
- name: Checkout repository
57-
uses: actions/checkout@v4
58-
59-
- name: Initialize CodeQL
60-
uses: github/codeql-action/init@v3
61-
with:
62-
languages: ${{ matrix.language }}
63-
64-
- name: Autobuild
65-
uses: github/codeql-action/autobuild@v3
66-
67-
- name: Perform CodeQL Analysis
68-
uses: github/codeql-action/analyze@v3
72+
- name: Checkout repository
73+
uses: actions/checkout@v4
74+
75+
- name: Initialize CodeQL
76+
uses: github/codeql-action/init@v3
77+
with:
78+
languages: ${{ matrix.language }}
79+
80+
- name: Autobuild
81+
uses: github/codeql-action/autobuild@v3
82+
83+
- name: Perform CodeQL Analysis
84+
uses: github/codeql-action/analyze@v3

contracts/stream_contract/src/test.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,10 @@ fn test_initialize_rejects_second_call() {
112112
let admin = Address::generate(&env);
113113
let treasury = Address::generate(&env);
114114

115+
assert_eq!(stream_id1, 1);
116+
assert_eq!(stream_id2, 2);
117+
assert!(client.get_stream(&stream_id1).is_some());
118+
assert!(client.get_stream(&stream_id2).is_some());
115119
client.initialize(&admin, &treasury, &100);
116120
let result = client.try_initialize(&admin, &treasury, &100);
117121
assert_eq!(result, Err(Ok(StreamError::AlreadyInitialized)));
@@ -340,6 +344,10 @@ fn test_top_up_rejects_negative_amount() {
340344
let client = create_contract(&env);
341345
let id = client.create_stream(&sender, &Address::generate(&env), &token, &10_000, &100);
342346

347+
let contract_id = env.register(StreamContract, ());
348+
let client = StreamContractClient::new(&env, &contract_id);
349+
let token_client = token::Client::new(&env, &token_address);
350+
token_client.approve(&sender, &contract_id, &20_000, &1_000_000);
343351
assert_eq!(
344352
client.try_top_up_stream(&sender, &id, &-50),
345353
Err(Ok(StreamError::InvalidAmount))
@@ -514,6 +522,10 @@ fn test_withdraw_emits_event() {
514522
let client = create_contract(&env);
515523
let id = client.create_stream(&sender, &recipient, &token, &500, &100);
516524

525+
let contract_id = env.register(StreamContract, ());
526+
let client = StreamContractClient::new(&env, &contract_id);
527+
let token_client = token::Client::new(&env, &token_address);
528+
token_client.approve(&sender, &contract_id, &20_000, &1_000_000);
517529
// Advance time by 100 seconds to allow full withdrawal (500 tokens / 100 seconds = 5 tokens/sec)
518530
env.ledger().with_mut(|l| {
519531
l.timestamp += 100;

0 commit comments

Comments
 (0)