• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

gripmock / grpctestify-rust / 24873980407

24 Apr 2026 05:32AM UTC coverage: 77.729% (+0.8%) from 76.897%
24873980407

push

github

web-flow
Merge pull request #42 from gripmock/bump-rustc

bump rustc & command grpcurl (exp)

1062 of 1251 new or added lines in 25 files covered. (84.89%)

95 existing lines in 7 files now uncovered.

18857 of 24260 relevant lines covered (77.73%)

40973.18 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/execution/workflow_graph.rs
1
// Workflow summary and call type detection
2

3
use crate::parser::ast::{Section, SectionType};
4

5
/// Get workflow summary statistics
6
pub struct WorkflowSummary {
7
    pub total_requests: usize,
8
    pub total_responses: usize,
9
    pub total_errors: usize,
10
    pub total_extractions: usize,
11
    pub total_assertions: usize,
12
    pub has_streaming: bool,
13
}
14

UNCOV
15
pub fn get_workflow_summary(sections: &[Section]) -> WorkflowSummary {
×
UNCOV
16
    let total_requests = sections
×
UNCOV
17
        .iter()
×
UNCOV
18
        .filter(|s| s.section_type == SectionType::Request)
×
UNCOV
19
        .count();
×
UNCOV
20
    let total_responses = sections
×
UNCOV
21
        .iter()
×
UNCOV
22
        .filter(|s| s.section_type == SectionType::Response)
×
UNCOV
23
        .count();
×
UNCOV
24
    let total_errors = sections
×
UNCOV
25
        .iter()
×
UNCOV
26
        .filter(|s| s.section_type == SectionType::Error)
×
UNCOV
27
        .count();
×
UNCOV
28
    let total_extractions = sections
×
UNCOV
29
        .iter()
×
UNCOV
30
        .filter(|s| s.section_type == SectionType::Extract)
×
UNCOV
31
        .count();
×
UNCOV
32
    let total_assertions = sections
×
UNCOV
33
        .iter()
×
UNCOV
34
        .filter(|s| s.section_type == SectionType::Asserts)
×
UNCOV
35
        .count();
×
36

37
    // Detect streaming based on multiple requests/responses
UNCOV
38
    let has_streaming = total_requests > 1 || total_responses > 1;
×
39

UNCOV
40
    WorkflowSummary {
×
UNCOV
41
        total_requests,
×
UNCOV
42
        total_responses,
×
UNCOV
43
        total_errors,
×
UNCOV
44
        total_extractions,
×
UNCOV
45
        total_assertions,
×
UNCOV
46
        has_streaming,
×
UNCOV
47
    }
×
UNCOV
48
}
×
49

50
/// Get call type description based on workflow
UNCOV
51
pub fn get_call_type(summary: &WorkflowSummary) -> &'static str {
×
UNCOV
52
    if summary.total_errors > 0 && summary.total_requests == 1 && summary.total_responses == 0 {
×
53
        "Unary Call Expecting Error"
×
UNCOV
54
    } else if summary.total_requests == 1 && summary.total_responses > 1 {
×
55
        "Server Streaming Call"
×
UNCOV
56
    } else if summary.total_requests > 1 && summary.total_responses == 1 {
×
57
        "Client Streaming Call"
×
UNCOV
58
    } else if summary.total_requests > 1 && summary.total_responses > 1 {
×
59
        "Bidirectional Streaming Call"
×
UNCOV
60
    } else if summary.total_requests == 1 && summary.total_responses == 1 {
×
UNCOV
61
        "Standard Unary Call"
×
62
    } else {
63
        "Multi-Step Workflow"
×
64
    }
UNCOV
65
}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc