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

gripmock / grpctestify-rust / 29780499551

20 Jul 2026 09:31PM UTC coverage: 74.193% (+4.4%) from 69.813%
29780499551

Pull #70

github

web-flow
Merge 8a1565b6d into 617b201e5
Pull Request #70: refactoring & bug fixes

5906 of 7474 new or added lines in 69 files covered. (79.02%)

86 existing lines in 23 files now uncovered.

37388 of 50393 relevant lines covered (74.19%)

26807.31 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

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

UNCOV
37
    let has_streaming = total_requests > 1 || total_responses > 1;
×
38

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

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

© 2026 Coveralls, Inc