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

getdozer / dozer / 3977575075

pending completion
3977575075

push

github

GitHub
Chore/apply flags config (#664)

139 of 139 new or added lines in 10 files covered. (100.0%)

22504 of 34428 relevant lines covered (65.37%)

72228.09 hits per line

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

88.03
/dozer-api/src/generator/protoc/tests.rs
1
use super::generator::ProtoGenerator;
2
use crate::generator::protoc::utils::{create_descriptor_set, get_proto_descriptor};
3
use crate::{test_utils, CacheEndpoint, PipelineDetails};
4
use dozer_types::models::api_security::ApiSecurity;
5
use dozer_types::models::flags::Flags;
6
use prost_reflect::{MethodDescriptor, ServiceDescriptor};
7
use std::collections::HashMap;
8
use tempdir::TempDir;
×
9

×
10
#[test]
1✔
11
fn test_generate_proto_and_descriptor() {
1✔
12
    let schema_name = "films".to_string();
1✔
13
    let schema = test_utils::get_schema();
1✔
14

1✔
15
    let endpoint = test_utils::get_endpoint();
1✔
16

1✔
17
    let mut map = HashMap::new();
1✔
18
    let details = PipelineDetails {
1✔
19
        schema_name: schema_name.clone(),
1✔
20
        cache_endpoint: CacheEndpoint {
1✔
21
            cache: test_utils::initialize_cache(&schema_name, Some(schema)),
1✔
22
            endpoint: endpoint.clone(),
1✔
23
        },
1✔
24
    };
1✔
25
    map.insert(schema_name, details.clone());
1✔
26

1✔
27
    let tmp_dir = TempDir::new("proto_generated").unwrap();
1✔
28
    let tmp_dir_path = tmp_dir.path();
1✔
29
    let api_security: Option<ApiSecurity> = None;
1✔
30
    let flags = Flags::default();
1✔
31

1✔
32
    ProtoGenerator::generate(tmp_dir_path, details, &api_security, &Some(flags)).unwrap();
1✔
33

1✔
34
    let descriptor_path = create_descriptor_set(tmp_dir_path, &[endpoint.name]).unwrap();
1✔
35
    let (_, descriptor) = get_proto_descriptor(&descriptor_path).unwrap();
1✔
36

1✔
37
    let msg = descriptor.get_message_by_name("dozer.generated.films.Film");
1✔
38
    let token_response = descriptor.get_message_by_name("dozer.generated.films.TokenResponse");
1✔
39
    let token_request = descriptor.get_message_by_name("dozer.generated.films.TokenRequest");
1✔
40

1✔
41
    assert!(msg.is_some(), "descriptor is not decoded properly");
1✔
42
    assert!(
1✔
43
        token_request.is_none(),
1✔
44
        "Token request should not be generated with empty security config"
×
45
    );
×
46
    assert!(
1✔
47
        token_response.is_none(),
1✔
48
        "Token response should not be generated with empty security config"
×
49
    );
×
50
}
1✔
51

×
52
#[test]
1✔
53
fn test_generate_proto_and_descriptor_with_security() {
1✔
54
    let schema_name = "films".to_string();
1✔
55
    let schema = test_utils::get_schema();
1✔
56

1✔
57
    let endpoint = test_utils::get_endpoint();
1✔
58

1✔
59
    let mut map = HashMap::new();
1✔
60
    let details = PipelineDetails {
1✔
61
        schema_name: schema_name.clone(),
1✔
62
        cache_endpoint: CacheEndpoint {
1✔
63
            cache: test_utils::initialize_cache(&schema_name, Some(schema)),
1✔
64
            endpoint: endpoint.clone(),
1✔
65
        },
1✔
66
    };
1✔
67
    map.insert(schema_name, details.clone());
1✔
68

1✔
69
    let tmp_dir = TempDir::new("proto_generated").unwrap();
1✔
70
    let tmp_dir_path = tmp_dir.path();
1✔
71

1✔
72
    let api_security = Some(ApiSecurity::Jwt("vDKrSDOrVY".to_owned()));
1✔
73
    let flags = Flags::default();
1✔
74
    ProtoGenerator::generate(tmp_dir_path, details, &api_security, &Some(flags)).unwrap();
1✔
75

1✔
76
    let descriptor_path = create_descriptor_set(tmp_dir_path, &[endpoint.name]).unwrap();
1✔
77
    let (_, descriptor) = get_proto_descriptor(&descriptor_path).unwrap();
1✔
78

1✔
79
    let msg = descriptor.get_message_by_name("dozer.generated.films.Film");
1✔
80
    let token_response = descriptor.get_message_by_name("dozer.generated.films.TokenResponse");
1✔
81
    let token_request = descriptor.get_message_by_name("dozer.generated.films.TokenRequest");
1✔
82
    assert!(msg.is_some(), "descriptor is not decoded properly");
1✔
83
    assert!(
1✔
84
        token_request.is_some(),
1✔
85
        "Missing Token request generated with security config"
×
86
    );
×
87
    assert!(
1✔
88
        token_response.is_some(),
1✔
89
        "Missing Token response generated with security config"
×
90
    );
91
}
1✔
92

93
#[test]
1✔
94
fn test_generate_proto_and_descriptor_with_push_event_off() {
1✔
95
    let schema_name = "films".to_string();
1✔
96
    let schema = test_utils::get_schema();
1✔
97

1✔
98
    let endpoint = test_utils::get_endpoint();
1✔
99

1✔
100
    let mut map = HashMap::new();
1✔
101
    let details = PipelineDetails {
1✔
102
        schema_name: schema_name.clone(),
1✔
103
        cache_endpoint: CacheEndpoint {
1✔
104
            cache: test_utils::initialize_cache(&schema_name, Some(schema)),
1✔
105
            endpoint: endpoint.clone(),
1✔
106
        },
1✔
107
    };
1✔
108
    map.insert(schema_name, details.clone());
1✔
109
    let tmp_dir = TempDir::new("proto_generated").unwrap();
1✔
110
    let tmp_dir_path = tmp_dir.path();
1✔
111
    let api_security = ApiSecurity::Jwt("vDKrSDOrVY".to_owned());
1✔
112
    ProtoGenerator::generate(tmp_dir_path, details, &Some(api_security), &None).unwrap();
1✔
113
    let descriptor_path = create_descriptor_set(tmp_dir_path, &[endpoint.name]).unwrap();
1✔
114
    let (_, descriptor) = get_proto_descriptor(&descriptor_path).unwrap();
1✔
115

1✔
116
    let msg = descriptor.get_message_by_name("dozer.generated.films.Film");
1✔
117
    let token_response = descriptor.get_message_by_name("dozer.generated.films.TokenResponse");
1✔
118
    let token_request = descriptor.get_message_by_name("dozer.generated.films.TokenRequest");
1✔
119
    let event_request = descriptor.get_message_by_name("dozer.generated.films.FilmEventRequest");
1✔
120
    let event_response = descriptor.get_message_by_name("dozer.generated.films.FilmEventResponse");
1✔
121
    let svcs: Vec<ServiceDescriptor> = descriptor.services().collect();
1✔
122
    let methods = svcs[0]
1✔
123
        .methods()
1✔
124
        .collect::<Vec<MethodDescriptor>>()
1✔
125
        .iter()
1✔
126
        .map(|m| m.name().to_string())
3✔
127
        .collect::<Vec<String>>();
1✔
128
    assert!(msg.is_some(), "descriptor is not decoded properly");
1✔
129
    assert!(
1✔
130
        token_request.is_some(),
1✔
131
        "Missing Token request generated with security config"
×
132
    );
133
    assert!(
1✔
134
        token_response.is_some(),
1✔
135
        "Missing Token response generated with security config"
×
136
    );
137
    assert!(
1✔
138
        event_request.is_none(),
1✔
139
        "Event request should not be generated with push_event flag off"
×
140
    );
141
    assert!(
1✔
142
        event_response.is_none(),
1✔
143
        "Event response should not be generated with push_event flag off"
×
144
    );
145
    assert!(svcs.len() == 1, "Only one service should be generated");
1✔
146
    assert!(
1✔
147
        methods.contains(&"query".to_string()),
1✔
148
        "query method should be generated"
×
149
    );
150
    assert!(
1✔
151
        methods.contains(&"token".to_string()),
1✔
152
        "token method should be generated"
×
153
    );
154
    assert!(
1✔
155
        !methods.contains(&"on_event".to_string()),
1✔
156
        "on_event method should not be generated"
×
157
    );
158
}
1✔
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