Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
f2167d6
fix(GitlabModelImporter): fix error when calling 2 times importMergeR…
knowbased Oct 20, 2025
3906e25
refactor: improve solution
knowbased Oct 21, 2025
9155650
feat: create GLHNotePosition and add reader in Gitlab importer
knowbased Oct 21, 2025
83a3e50
feat: add notePosition to the metamodel generator
knowbased Oct 21, 2025
733f0b4
fix: add mr -> note relation
knowbased Oct 21, 2025
e8d8e06
fix: remove duplicate note in metamodel generator
knowbased Oct 21, 2025
947dd88
feat: generate new model
knowbased Oct 21, 2025
478ef64
feat: push new model
knowbased Oct 21, 2025
ff4183f
feat: add note suggeestion in meta model generator
knowbased Oct 21, 2025
35b5187
feat: new model with suggestion
knowbased Oct 21, 2025
034a912
fix: add suggestion relation il metamodel
knowbased Oct 21, 2025
0b150ca
decouple self merged merge request, and merged merge request
badetitou Oct 22, 2025
5336fc4
rename MergeRequestMergedByUser
badetitou Oct 22, 2025
0e66413
update name
badetitou Oct 22, 2025
a5896fe
add tests on period
badetitou Oct 22, 2025
51690be
feat: add suggestion in gitlab importer
knowbased Oct 23, 2025
109c98a
feat: update model to have GLHNoteSuggestion
knowbased Oct 23, 2025
5234e1f
incredibly stupid fix that should get me fired
Oct 23, 2025
ae9317d
refactor: rename get for import in method name
knowbased Oct 24, 2025
a454705
fix: error in import suggestion
knowbased Oct 27, 2025
51586ed
refactor: add block equality for suggestion
knowbased Oct 27, 2025
3a11924
refactor: change import note
knowbased Oct 27, 2025
bb78c65
fix variable usage
badetitou Nov 3, 2025
4d13bc6
Merge pull request #237 from moosetechnology/feat/add-position-in-glh…
badetitou Nov 3, 2025
487462b
Merge pull request #236 from moosetechnology/fix/importMergeRequestSi…
badetitou Nov 3, 2025
f9ecff9
fix(blockForDiffEquality):does not handle when diff is empty but file…
knowbased Nov 13, 2025
2b798f9
Merge pull request #238 from moosetechnology/merged-merge-request
badetitou Nov 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,286 @@
"
A MergedMergeRequestMetricTest is a test class for testing the behavior of MergedMergeRequestMetric
"
Class {
#name : #MergeRequestMergedByUserMetricTest,
#superclass : #UserMetricTest,
#category : #'GitLabHealth-Model-Analysis-Tests'
}

{ #category : #tests }
MergeRequestMergedByUserMetricTest >> testCalculate [

| result glhImporter mergedMergeRequest |
"Given"


glhImporter := GLPHImporterMock new.
glhImporter mergeRequests: {
(GLHMergeRequest new
author: user;
merge_user: user;
project: project1;
created_at: createdAt ;
merged_at: mergedAt ).

(GLHMergeRequest new
author: user;
merge_user: user;
project: project1;
created_at: createdAt - 20 days;
merged_at: nil) }.


mergedMergeRequest := MergeRequestMergedByUserMetric new
user: user;
glhImporter: glhImporter;
setPeriodSince: since
until: until;
over: Week.

"When"
result := mergedMergeRequest calculate.

"Then"
self assert: result equals: 1
]

{ #category : #tests }
MergeRequestMergedByUserMetricTest >> testCalculate1MRInPeriod1Outside [

| result glhImporter mergedMergeRequest |
"Given"
glhImporter := GLPHImporterMock new.
glhImporter mergeRequests: {
(GLHMergeRequest new
author: user;
project: project1;
merge_user: user;
created_at: createdAt;
merged_at: mergedAt).

"open but merged anotherWeek"
(GLHMergeRequest new
author: user;
merge_user: user;
project: project1;
created_at: createdAt;
merged_at: createdAt + 10 days) }.
"open and merge during the same week"


mergedMergeRequest := MergeRequestMergedByUserMetric new
user: user;
glhImporter: glhImporter;
setPeriodSince: since until: until;
over: Week.

"When"
result := mergedMergeRequest calculate.

"Then"
self assert: result equals: 1
]

{ #category : #tests }
MergeRequestMergedByUserMetricTest >> testCalculate1MROpenedButNotMerged [

| result glhImporter mergedMergeRequest |
"Given"
glhImporter := GLPHImporterMock new.
glhImporter mergeRequests: {
(GLHMergeRequest new
author: user;
merge_user: user;
project: project1;
created_at: createdAt;
merged_at: mergedAt;
state: #merged).

(GLHMergeRequest new
author: user;
project: project1;
created_at: createdAt;
state: #opened) }.


mergedMergeRequest := MergeRequestMergedByUserMetric new
user: user;
glhImporter: glhImporter;
setPeriodSince: since until: until;
over: Week.

"When"
result := mergedMergeRequest calculate.

"Then"
self assert: result equals: 1
]

{ #category : #tests }
MergeRequestMergedByUserMetricTest >> testCalculate2MROneForEachUser [

| result glhImporter mergedMergeRequest user2 |
"Given"


user2 := GLHUser new
name: 'user2';
id: 2;
contributedProjects: { project1 }.

glhImporter := GLPHImporterMock new.
glhImporter mergeRequests: {
(GLHMergeRequest new
author: user;
title: 'MR1';
project: project1;
created_at: createdAt;
merge_user: user;
merged_at: mergedAt).
(GLHMergeRequest new
author: user2;
title: 'MR2';
project: project1;
created_at: createdAt;
merge_user: user2;
merged_at: mergedAt) }.


mergedMergeRequest := MergeRequestMergedByUserMetric new
user: user;
glhImporter: glhImporter;
setPeriodSince: since until: until;
over: Week.

"When"
result := mergedMergeRequest calculate.

"Then"
self assert: result equals: 1
]

{ #category : #tests }
MergeRequestMergedByUserMetricTest >> testCalculate3MROpenButMergedByOthers [

| result glhImporter mergedMergeRequest user2 |
"Given"


user2 := GLHUser new
name: 'user2';
id: 2;
contributedProjects:
{ project1 }.

glhImporter := GLPHImporterMock new.
glhImporter mergeRequests: {
(GLHMergeRequest new
author: user;
title: 'MR1';
created_at: createdAt;
merge_user: user2;
merged_at: mergedAt ).
(GLHMergeRequest new
author: user;
title: 'MR2';
created_at: createdAt ;
merge_user: user2;
merged_at: mergedAt ).
(GLHMergeRequest new
author: user;
title: 'MR3';
created_at: createdAt ;
merge_user: user2;
merged_at: mergedAt ) }.


mergedMergeRequest := MergeRequestMergedByUserMetric new
user: user;
glhImporter: glhImporter;
setPeriodSince: since
until: until;
over: Week.

"When"
result := mergedMergeRequest calculate.

"Then"
self assert: result equals: 0
]

{ #category : #tests }
MergeRequestMergedByUserMetricTest >> testCalculate3MROpenByOther [

| result glhImporter mergedMergeRequest user2 |
"Given"

user2 := GLHUser new
name: 'user2';
id: 2;
contributedProjects:
{ project1 }.

glhImporter := GLPHImporterMock new.
glhImporter mergeRequests: {
(GLHMergeRequest new
author: user2;
title: 'MR1';
created_at: createdAt ;
merge_user: user;
project: project1 ;
state: #merged;
merged_at: mergedAt ).
(GLHMergeRequest new
author: user2;
state: #merged;
title: 'MR2';
created_at: createdAt ;
project: project1 ;
merge_user: user;
merged_at: mergedAt ).
(GLHMergeRequest new
author: user2;
state: #merged;
title: 'MR3';
created_at: createdAt ;
project: project1 ;
merge_user: user;
merged_at: mergedAt ) }.


mergedMergeRequest := MergeRequestMergedByUserMetric new
user: user;
glhImporter: glhImporter;
setPeriodSince: since
until: until;
over: Week.

"When"
result := mergedMergeRequest calculate.

"Then"
self assert: result equals: 3
]

{ #category : #tests }
MergeRequestMergedByUserMetricTest >> testCalculateNoMergeRequests [

| result glhImporter mergedMergeRequest |
"Given"
glhImporter := GLPHImporterMock new.


mergedMergeRequest := MergeRequestMergedByUserMetric new
user: user;
glhImporter: glhImporter;
setPeriodSince: since
until: until;
over: Week.

"When"
result := mergedMergeRequest calculate.

"Then"
self assert: result equals: 0
]
Loading