Skip to content

Commit 2a58cd7

Browse files
committed
fix(unit-tests): added unit tests for preprint-submissions
1 parent 6b5d969 commit 2a58cd7

5 files changed

Lines changed: 144 additions & 5 deletions

File tree

‎src/app/features/moderation/components/preprint-submissions/preprint-submissions.component.spec.ts‎

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
1+
import { Store } from '@ngxs/store';
2+
13
import { MockComponents, MockProvider } from 'ng-mocks';
24

35
import { ComponentFixture, TestBed } from '@angular/core/testing';
46
import { ActivatedRoute, Router } from '@angular/router';
57

68
import { PreprintSubmissionItemComponent } from '@osf/features/moderation/components';
7-
import { RegistryModeration } from '@osf/features/moderation/models';
9+
import { PreprintSubmissionModel } from '@osf/features/moderation/models';
810
import { CustomPaginatorComponent, IconComponent, LoadingSpinnerComponent, SelectComponent } from '@shared/components';
911

1012
import { PreprintSubmissionsSort, SubmissionReviewStatus } from '../../enums';
11-
import { PreprintModerationSelectors } from '../../store/preprint-moderation';
13+
import {
14+
GetPreprintSubmissionContributors,
15+
LoadMorePreprintSubmissionContributors,
16+
PreprintModerationSelectors,
17+
} from '../../store/preprint-moderation';
1218

1319
import { PreprintSubmissionsComponent } from './preprint-submissions.component';
1420

15-
import { MOCK_REGISTRY_MODERATIONS } from '@testing/mocks/registry-moderation.mock';
21+
import { MOCK_PREPRINT_SUBMISSIONS } from '@testing/mocks/preprint-submission.mock';
1622
import { OSFTestingModule } from '@testing/osf.testing.module';
1723
import { ActivatedRouteMockBuilder } from '@testing/providers/route-provider.mock';
1824
import { RouterMockBuilder } from '@testing/providers/router-provider.mock';
@@ -23,9 +29,10 @@ describe('PreprintSubmissionsComponent', () => {
2329
let fixture: ComponentFixture<PreprintSubmissionsComponent>;
2430
let mockRouter: ReturnType<RouterMockBuilder['build']>;
2531
let mockActivatedRoute: ReturnType<ActivatedRouteMockBuilder['build']>;
32+
let store: Store;
2633

2734
const mockProviderId = 'test-provider-id';
28-
const mockSubmissions: RegistryModeration[] = MOCK_REGISTRY_MODERATIONS;
35+
const mockSubmissions: PreprintSubmissionModel[] = MOCK_PREPRINT_SUBMISSIONS;
2936

3037
beforeEach(async () => {
3138
mockRouter = RouterMockBuilder.create().build();
@@ -64,6 +71,7 @@ describe('PreprintSubmissionsComponent', () => {
6471

6572
fixture = TestBed.createComponent(PreprintSubmissionsComponent);
6673
component = fixture.componentInstance;
74+
store = TestBed.inject(Store);
6775
fixture.detectChanges();
6876
});
6977

@@ -143,4 +151,22 @@ describe('PreprintSubmissionsComponent', () => {
143151
expect(component.currentPage()).toBe(1);
144152
expect(component.first()).toBe(0);
145153
});
154+
155+
it('should load contributors for a submission', () => {
156+
const mockItem = mockSubmissions[0];
157+
const dispatchSpy = jest.spyOn(store, 'dispatch');
158+
159+
component.loadContributors(mockItem);
160+
161+
expect(dispatchSpy).toHaveBeenCalledWith(new GetPreprintSubmissionContributors(mockItem.id));
162+
});
163+
164+
it('should load more contributors for a submission', () => {
165+
const mockItem = mockSubmissions[0];
166+
const dispatchSpy = jest.spyOn(store, 'dispatch');
167+
168+
component.loadMoreContributors(mockItem);
169+
170+
expect(dispatchSpy).toHaveBeenCalledWith(new LoadMorePreprintSubmissionContributors(mockItem.id));
171+
});
146172
});

‎src/app/features/moderation/components/preprint-withdrawal-submissions/preprint-withdrawal-submissions.component.spec.ts‎

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { Store } from '@ngxs/store';
2+
13
import { MockComponents, MockProvider } from 'ng-mocks';
24

35
import { ComponentFixture, TestBed } from '@angular/core/testing';
@@ -8,7 +10,11 @@ import { PreprintWithdrawalSubmission } from '@osf/features/moderation/models';
810
import { CustomPaginatorComponent, IconComponent, LoadingSpinnerComponent, SelectComponent } from '@shared/components';
911

1012
import { PreprintSubmissionsSort, SubmissionReviewStatus } from '../../enums';
11-
import { PreprintModerationSelectors } from '../../store/preprint-moderation';
13+
import {
14+
GetPreprintWithdrawalSubmissionContributors,
15+
LoadMorePreprintWithdrawalSubmissionContributors,
16+
PreprintModerationSelectors,
17+
} from '../../store/preprint-moderation';
1218

1319
import { PreprintWithdrawalSubmissionsComponent } from './preprint-withdrawal-submissions.component';
1420

@@ -23,6 +29,7 @@ describe('PreprintWithdrawalSubmissionsComponent', () => {
2329
let fixture: ComponentFixture<PreprintWithdrawalSubmissionsComponent>;
2430
let mockRouter: ReturnType<RouterMockBuilder['build']>;
2531
let mockActivatedRoute: ReturnType<ActivatedRouteMockBuilder['build']>;
32+
let store: Store;
2633

2734
const mockProviderId = 'test-provider-id';
2835
const mockSubmissions: PreprintWithdrawalSubmission[] = MOCK_PREPRINT_WITHDRAWAL_SUBMISSIONS;
@@ -74,6 +81,7 @@ describe('PreprintWithdrawalSubmissionsComponent', () => {
7481

7582
fixture = TestBed.createComponent(PreprintWithdrawalSubmissionsComponent);
7683
component = fixture.componentInstance;
84+
store = TestBed.inject(Store);
7785
fixture.detectChanges();
7886
});
7987

@@ -164,4 +172,26 @@ describe('PreprintWithdrawalSubmissionsComponent', () => {
164172
expect(component.currentPage()).toBe(1);
165173
expect(component.first()).toBe(0);
166174
});
175+
176+
it('should load contributors for a withdrawal submission', () => {
177+
const mockItem = mockSubmissions[0];
178+
const dispatchSpy = jest.spyOn(store, 'dispatch');
179+
180+
component.loadContributors(mockItem);
181+
182+
expect(dispatchSpy).toHaveBeenCalledWith(
183+
new GetPreprintWithdrawalSubmissionContributors(mockItem.id, mockItem.preprintId)
184+
);
185+
});
186+
187+
it('should load more contributors for a withdrawal submission', () => {
188+
const mockItem = mockSubmissions[0];
189+
const dispatchSpy = jest.spyOn(store, 'dispatch');
190+
191+
component.loadMoreContributors(mockItem);
192+
193+
expect(dispatchSpy).toHaveBeenCalledWith(
194+
new LoadMorePreprintWithdrawalSubmissionContributors(mockItem.id, mockItem.preprintId)
195+
);
196+
});
167197
});

‎src/testing/mocks/index.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export { MOCK_REGISTRATION } from './registration.mock';
2525
export * from './resource.mock';
2626
export { MOCK_REVIEW } from './review.mock';
2727
export { MOCK_SCOPES } from './scope.mock';
28+
export * from './submission.mock';
2829
export { MOCK_TOKEN } from './token.mock';
2930
export { TranslateServiceMock } from './translate.service.mock';
3031
export * from './view-only-link.mock';
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import { PreprintSubmissionModel } from '@osf/features/moderation/models';
2+
3+
export const MOCK_PREPRINT_SUBMISSIONS: PreprintSubmissionModel[] = [
4+
{
5+
id: '1',
6+
title: 'Test Preprint Submission 1',
7+
reviewsState: 'pending',
8+
public: false,
9+
actions: [
10+
{
11+
id: '1',
12+
trigger: 'manual',
13+
fromState: 'pending',
14+
toState: 'pending',
15+
dateModified: '2023-01-01',
16+
creator: {
17+
id: 'user-1',
18+
name: 'John Doe',
19+
},
20+
comment: 'Test comment',
21+
},
22+
],
23+
contributors: [],
24+
totalContributors: 0,
25+
},
26+
{
27+
id: '2',
28+
title: 'Test Preprint Submission 2',
29+
reviewsState: 'accepted',
30+
public: true,
31+
actions: [
32+
{
33+
id: '2',
34+
trigger: 'manual',
35+
fromState: 'pending',
36+
toState: 'accepted',
37+
dateModified: '2023-01-02',
38+
creator: {
39+
id: 'user-2',
40+
name: 'Jane Doe',
41+
},
42+
comment: 'Approved submission',
43+
},
44+
],
45+
contributors: [],
46+
totalContributors: 0,
47+
},
48+
{
49+
id: '3',
50+
title: 'Test Preprint Submission 3',
51+
reviewsState: 'rejected',
52+
public: false,
53+
actions: [
54+
{
55+
id: '3',
56+
trigger: 'manual',
57+
fromState: 'pending',
58+
toState: 'rejected',
59+
dateModified: '2023-01-03',
60+
creator: {
61+
id: 'user-3',
62+
name: 'Bob Smith',
63+
},
64+
comment: 'Rejected submission',
65+
},
66+
],
67+
contributors: [],
68+
totalContributors: 0,
69+
},
70+
];

‎src/testing/mocks/preprint-withdrawal-submission.mock.ts‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ export const MOCK_PREPRINT_WITHDRAWAL_SUBMISSIONS: PreprintWithdrawalSubmission[
55
id: '1',
66
title: 'Test Withdrawal 1',
77
preprintId: 'preprint-1',
8+
contributors: [],
9+
contributorsLoading: false,
10+
contributorsPage: 1,
11+
totalContributors: 0,
812
actions: [
913
{
1014
id: '1',
@@ -24,6 +28,10 @@ export const MOCK_PREPRINT_WITHDRAWAL_SUBMISSIONS: PreprintWithdrawalSubmission[
2428
id: '2',
2529
preprintId: 'preprint-2',
2630
title: 'Test Withdrawal 2',
31+
contributors: [],
32+
contributorsLoading: false,
33+
contributorsPage: 1,
34+
totalContributors: 0,
2735
actions: [
2836
{
2937
id: '2',
@@ -43,6 +51,10 @@ export const MOCK_PREPRINT_WITHDRAWAL_SUBMISSIONS: PreprintWithdrawalSubmission[
4351
id: '3',
4452
preprintId: 'preprint-3',
4553
title: 'Test Withdrawal 3',
54+
contributors: [],
55+
contributorsLoading: false,
56+
contributorsPage: 1,
57+
totalContributors: 0,
4658
actions: [
4759
{
4860
id: '3',

0 commit comments

Comments
 (0)