You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: api/src/model/branch.rs
+23-2Lines changed: 23 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
use serde::{Deserialize,Serialize};
2
2
3
3
usecrate::model::commit::Commit;
4
-
usecrate::model::Pipeline;
4
+
usecrate::model::{Job,Pipeline};
5
5
6
6
#[derive(Clone,Debug,Serialize,Deserialize)]
7
7
pubstructBranch{
@@ -19,13 +19,15 @@ pub struct BranchPipeline {
19
19
pubbranch:Branch,
20
20
#[serde(skip_serializing_if = "Option::is_none")]
21
21
pubpipeline:Option<Pipeline>,
22
+
#[serde(skip_serializing_if = "Option::is_none")]
23
+
pubfailed_jobs:Option<Vec<Job>>,
22
24
}
23
25
24
26
#[cfg(test)]
25
27
mod tests {
26
28
use serde_json::json;
27
29
28
-
usecrate::model::{Branch,BranchPipeline, test};
30
+
usecrate::model::{test,Branch,BranchPipeline};
29
31
30
32
#[test]
31
33
fnbranch_deserialize(){
@@ -69,6 +71,7 @@ mod tests {
69
71
70
72
let json = serde_json::to_string(&value).unwrap();
71
73
let expected = "{\"name\":\"branch-1\",\"merged\":false,\"protected\":false,\"default\":false,\"can_push\":false,\"web_url\":\"web_url\",\"commit\":{\"id\":\"id\",\"author_name\":\"author_name\",\"committer_name\":\"committer_name\",\"committed_date\":\"1970-01-01T00:00:00Z\",\"title\":\"title\",\"message\":\"message\"}}";
74
+
72
75
assert_eq!(expected, json);
73
76
}
74
77
@@ -77,10 +80,12 @@ mod tests {
77
80
let value = BranchPipeline{
78
81
branch: test::new_branch(),
79
82
pipeline:None,
83
+
failed_jobs:None,
80
84
};
81
85
82
86
let json = serde_json::to_string(&value).unwrap();
83
87
let expected = "{\"branch\":{\"name\":\"branch-1\",\"merged\":false,\"protected\":false,\"default\":false,\"can_push\":false,\"web_url\":\"web_url\",\"commit\":{\"id\":\"id\",\"author_name\":\"author_name\",\"committer_name\":\"committer_name\",\"committed_date\":\"1970-01-01T00:00:00Z\",\"title\":\"title\",\"message\":\"message\"}}}";
88
+
84
89
assert_eq!(expected, json);
85
90
}
86
91
@@ -89,10 +94,26 @@ mod tests {
89
94
let value = BranchPipeline{
90
95
branch: test::new_branch(),
91
96
pipeline:Some(test::new_pipeline()),
97
+
failed_jobs:None,
92
98
};
93
99
94
100
let json = serde_json::to_string(&value).unwrap();
95
101
let expected = "{\"branch\":{\"name\":\"branch-1\",\"merged\":false,\"protected\":false,\"default\":false,\"can_push\":false,\"web_url\":\"web_url\",\"commit\":{\"id\":\"id\",\"author_name\":\"author_name\",\"committer_name\":\"committer_name\",\"committed_date\":\"1970-01-01T00:00:00Z\",\"title\":\"title\",\"message\":\"message\"}},\"pipeline\":{\"id\":1,\"iid\":2,\"project_id\":3,\"sha\":\"sha\",\"ref\":\"branch\",\"status\":\"running\",\"source\":\"web\",\"created_at\":\"1970-01-01T00:00:00Z\",\"updated_at\":\"1970-01-01T00:00:00Z\",\"web_url\":\"web_url\"}}";
102
+
103
+
assert_eq!(expected, json);
104
+
}
105
+
106
+
#[test]
107
+
fnbranch_pipeline_serialize_some_failed_jobs(){
108
+
let value = BranchPipeline{
109
+
branch: test::new_branch(),
110
+
pipeline:None,
111
+
failed_jobs:Some(vec![test::new_job()]),
112
+
};
113
+
114
+
let json = serde_json::to_string(&value).unwrap();
115
+
let expected = "{\"branch\":{\"name\":\"branch-1\",\"merged\":false,\"protected\":false,\"default\":false,\"can_push\":false,\"web_url\":\"web_url\",\"commit\":{\"id\":\"id\",\"author_name\":\"author_name\",\"committer_name\":\"committer_name\",\"committed_date\":\"1970-01-01T00:00:00Z\",\"title\":\"title\",\"message\":\"message\"}},\"failed_jobs\":[{\"id\":1,\"created_at\":\"1970-01-01T00:00:00Z\",\"allow_failure\":false,\"name\":\"name\",\"ref\":\"branch\",\"stage\":\"stage\",\"status\":\"success\",\"web_url\":\"web_url\",\"pipeline\":{\"id\":1,\"iid\":2,\"project_id\":3,\"sha\":\"sha\",\"ref\":\"branch\",\"status\":\"running\",\"source\":\"web\",\"created_at\":\"1970-01-01T00:00:00Z\",\"updated_at\":\"1970-01-01T00:00:00Z\",\"web_url\":\"web_url\"},\"commit\":{\"id\":\"id\",\"author_name\":\"author_name\",\"committer_name\":\"committer_name\",\"committed_date\":\"1970-01-01T00:00:00Z\",\"title\":\"title\",\"message\":\"message\"},\"user\":{\"id\":123,\"username\":\"username\",\"name\":\"name\",\"state\":\"state\",\"is_admin\":false}}]}";
let json = serde_json::to_string(&value).unwrap();
@@ -210,10 +213,27 @@ mod tests {
210
213
group_id:1,
211
214
project: test::new_project(),
212
215
pipeline:Some(test::new_pipeline()),
216
+
failed_jobs:None,
213
217
};
214
218
215
219
let json = serde_json::to_string(&value).unwrap();
216
220
let expected = "{\"group_id\":1,\"project\":{\"id\":456,\"name\":\"name\",\"web_url\":\"web_url\",\"default_branch\":\"default_branch\",\"topics\":[\"topic\"],\"namespace\":{\"id\":123,\"name\":\"namespace\",\"path\":\"namespace\"}},\"pipeline\":{\"id\":1,\"iid\":2,\"project_id\":3,\"sha\":\"sha\",\"ref\":\"branch\",\"status\":\"running\",\"source\":\"web\",\"created_at\":\"1970-01-01T00:00:00Z\",\"updated_at\":\"1970-01-01T00:00:00Z\",\"web_url\":\"web_url\"}}";
221
+
222
+
assert_eq!(expected, json);
223
+
}
224
+
225
+
#[test]
226
+
fnproject_pipeline_serialize_some_failed_jobs(){
227
+
let value = ProjectPipeline{
228
+
group_id:1,
229
+
project: test::new_project(),
230
+
pipeline:None,
231
+
failed_jobs:Some(vec![test::new_job()]),
232
+
};
233
+
234
+
let json = serde_json::to_string(&value).unwrap();
235
+
let expected = "{\"group_id\":1,\"project\":{\"id\":456,\"name\":\"name\",\"web_url\":\"web_url\",\"default_branch\":\"default_branch\",\"topics\":[\"topic\"],\"namespace\":{\"id\":123,\"name\":\"namespace\",\"path\":\"namespace\"}},\"failed_jobs\":[{\"id\":1,\"created_at\":\"1970-01-01T00:00:00Z\",\"allow_failure\":false,\"name\":\"name\",\"ref\":\"branch\",\"stage\":\"stage\",\"status\":\"success\",\"web_url\":\"web_url\",\"pipeline\":{\"id\":1,\"iid\":2,\"project_id\":3,\"sha\":\"sha\",\"ref\":\"branch\",\"status\":\"running\",\"source\":\"web\",\"created_at\":\"1970-01-01T00:00:00Z\",\"updated_at\":\"1970-01-01T00:00:00Z\",\"web_url\":\"web_url\"},\"commit\":{\"id\":\"id\",\"author_name\":\"author_name\",\"committer_name\":\"committer_name\",\"committed_date\":\"1970-01-01T00:00:00Z\",\"title\":\"title\",\"message\":\"message\"},\"user\":{\"id\":123,\"username\":\"username\",\"name\":\"name\",\"state\":\"state\",\"is_admin\":false}}]}";
let json = serde_json::to_string(&value).unwrap();
70
72
let expected = "{\"id\":789,\"description\":\"description\",\"ref\":\"branch\",\"cron\":\"cron\",\"cron_timezone\":\"cron_timezone\",\"next_run_at\":\"1970-01-01T00:00:00Z\",\"active\":false,\"created_at\":\"1970-01-01T00:00:00Z\",\"updated_at\":\"1970-01-01T00:00:00Z\",\"owner\":{\"id\":123,\"username\":\"username\",\"name\":\"name\",\"state\":\"state\",\"is_admin\":false}}";
73
+
71
74
assert_eq!(expected, json);
72
75
}
73
76
@@ -78,6 +81,7 @@ mod tests {
78
81
schedule: test::new_schedule(),
79
82
project: test::new_project(),
80
83
pipeline:None,
84
+
failed_jobs:None,
81
85
};
82
86
83
87
let json = serde_json::to_string(&value).unwrap();
@@ -93,11 +97,28 @@ mod tests {
93
97
schedule: test::new_schedule(),
94
98
project: test::new_project(),
95
99
pipeline:Some(test::new_pipeline()),
100
+
failed_jobs:None,
96
101
};
97
102
98
103
let json = serde_json::to_string(&value).unwrap();
99
104
let expected = "{\"group_id\":1,\"schedule\":{\"id\":789,\"description\":\"description\",\"ref\":\"branch\",\"cron\":\"cron\",\"cron_timezone\":\"cron_timezone\",\"next_run_at\":\"1970-01-01T00:00:00Z\",\"active\":false,\"created_at\":\"1970-01-01T00:00:00Z\",\"updated_at\":\"1970-01-01T00:00:00Z\",\"owner\":{\"id\":123,\"username\":\"username\",\"name\":\"name\",\"state\":\"state\",\"is_admin\":false}},\"project\":{\"id\":456,\"name\":\"name\",\"web_url\":\"web_url\",\"default_branch\":\"default_branch\",\"topics\":[\"topic\"],\"namespace\":{\"id\":123,\"name\":\"namespace\",\"path\":\"namespace\"}},\"pipeline\":{\"id\":1,\"iid\":2,\"project_id\":3,\"sha\":\"sha\",\"ref\":\"branch\",\"status\":\"running\",\"source\":\"web\",\"created_at\":\"1970-01-01T00:00:00Z\",\"updated_at\":\"1970-01-01T00:00:00Z\",\"web_url\":\"web_url\"}}";
let json = serde_json::to_string(&value).unwrap();
120
+
let expected = "{\"group_id\":1,\"schedule\":{\"id\":789,\"description\":\"description\",\"ref\":\"branch\",\"cron\":\"cron\",\"cron_timezone\":\"cron_timezone\",\"next_run_at\":\"1970-01-01T00:00:00Z\",\"active\":false,\"created_at\":\"1970-01-01T00:00:00Z\",\"updated_at\":\"1970-01-01T00:00:00Z\",\"owner\":{\"id\":123,\"username\":\"username\",\"name\":\"name\",\"state\":\"state\",\"is_admin\":false}},\"project\":{\"id\":456,\"name\":\"name\",\"web_url\":\"web_url\",\"default_branch\":\"default_branch\",\"topics\":[\"topic\"],\"namespace\":{\"id\":123,\"name\":\"namespace\",\"path\":\"namespace\"}},\"failed_jobs\":[{\"id\":1,\"created_at\":\"1970-01-01T00:00:00Z\",\"allow_failure\":false,\"name\":\"name\",\"ref\":\"branch\",\"stage\":\"stage\",\"status\":\"success\",\"web_url\":\"web_url\",\"pipeline\":{\"id\":1,\"iid\":2,\"project_id\":3,\"sha\":\"sha\",\"ref\":\"branch\",\"status\":\"running\",\"source\":\"web\",\"created_at\":\"1970-01-01T00:00:00Z\",\"updated_at\":\"1970-01-01T00:00:00Z\",\"web_url\":\"web_url\"},\"commit\":{\"id\":\"id\",\"author_name\":\"author_name\",\"committer_name\":\"committer_name\",\"committed_date\":\"1970-01-01T00:00:00Z\",\"title\":\"title\",\"message\":\"message\"},\"user\":{\"id\":123,\"username\":\"username\",\"name\":\"name\",\"state\":\"state\",\"is_admin\":false}}]}";
0 commit comments