|
14 | 14 | * limitations under the License.
|
15 | 15 | */
|
16 | 16 |
|
17 |
| -import {Timestamp} from '@angular/fire/firestore'; |
18 |
| -import {List, Map} from 'immutable'; |
19 |
| - |
20 |
| -import {Job} from 'app/models/job.model'; |
21 | 17 | import {Role} from 'app/models/role.model';
|
22 |
| -import {Submission} from 'app/models/submission/submission.model'; |
23 |
| -import { |
24 |
| - Cardinality, |
25 |
| - MultipleChoice, |
26 |
| -} from 'app/models/task/multiple-choice.model'; |
27 |
| -import {Option} from 'app/models/task/option.model'; |
28 |
| -import {Task, TaskType} from 'app/models/task/task.model'; |
29 | 18 |
|
30 | 19 | import {FirebaseDataConverter} from './firebase-data-converter';
|
31 | 20 |
|
32 |
| -class MockFirebaseData { |
33 |
| - static submission001 = { |
34 |
| - created: { |
35 |
| - clientTimestamp: undefined, |
36 |
| - serverTimestamp: undefined, |
37 |
| - user: { |
38 |
| - displayName: 'Creator', |
39 |
| - |
40 |
| - id: 'creator001', |
41 |
| - }, |
42 |
| - }, |
43 |
| - lastModified: { |
44 |
| - clientTimestamp: undefined, |
45 |
| - serverTimestamp: undefined, |
46 |
| - user: { |
47 |
| - displayName: 'Modifier', |
48 |
| - |
49 |
| - id: 'modifier001', |
50 |
| - }, |
51 |
| - }, |
52 |
| - loiId: 'loi001', |
53 |
| - jobId: 'job001', |
54 |
| - data: { |
55 |
| - task001: 'text result', |
56 |
| - task002: ['option001', 'option002'], |
57 |
| - task003: 123, |
58 |
| - task004: new Timestamp(1641533340, 0), |
59 |
| - task005: new Timestamp(1641534444, 0), |
60 |
| - }, |
61 |
| - }; |
62 |
| -} |
63 |
| - |
64 |
| -class MockModel { |
65 |
| - static task001: Task = new Task( |
66 |
| - 'task001', |
67 |
| - TaskType.TEXT, |
68 |
| - 'Text Field', |
69 |
| - /*required=*/ true, |
70 |
| - 0 |
71 |
| - ); |
72 |
| - |
73 |
| - static task002: Task = new Task( |
74 |
| - 'task002', |
75 |
| - TaskType.MULTIPLE_CHOICE, |
76 |
| - 'Multiple Select', |
77 |
| - /*required=*/ true, |
78 |
| - 1, |
79 |
| - new MultipleChoice( |
80 |
| - Cardinality.SELECT_MULTIPLE, |
81 |
| - List([ |
82 |
| - new Option( |
83 |
| - 'option001', |
84 |
| - 'code001', |
85 |
| - 'option 1', |
86 |
| - /* index= */ |
87 |
| - 0 |
88 |
| - ), |
89 |
| - new Option( |
90 |
| - 'option002', |
91 |
| - 'code002', |
92 |
| - 'option 2', |
93 |
| - /* index= */ |
94 |
| - 0 |
95 |
| - ), |
96 |
| - ]) |
97 |
| - ) |
98 |
| - ); |
99 |
| - |
100 |
| - static task003: Task = new Task( |
101 |
| - 'task003', |
102 |
| - TaskType.NUMBER, |
103 |
| - 'How many sloths are there?', |
104 |
| - /*required=*/ true, |
105 |
| - 2 |
106 |
| - ); |
107 |
| - |
108 |
| - static task004: Task = new Task( |
109 |
| - 'task004', |
110 |
| - TaskType.DATE, |
111 |
| - 'What is the current date?', |
112 |
| - /*required=*/ true, |
113 |
| - 2 |
114 |
| - ); |
115 |
| - |
116 |
| - static task005: Task = new Task( |
117 |
| - 'task005', |
118 |
| - TaskType.TIME, |
119 |
| - 'What time is it?', |
120 |
| - /*required=*/ true, |
121 |
| - 2 |
122 |
| - ); |
123 |
| - |
124 |
| - static job001: Job = new Job( |
125 |
| - /* id= */ 'job001', |
126 |
| - /* index= */ 0, |
127 |
| - '#ffffff', |
128 |
| - 'Test job', |
129 |
| - Map({ |
130 |
| - task001: MockModel.task001, |
131 |
| - task002: MockModel.task002, |
132 |
| - task003: MockModel.task003, |
133 |
| - task004: MockModel.task004, |
134 |
| - task005: MockModel.task005, |
135 |
| - }) |
136 |
| - ); |
137 |
| -} |
138 |
| - |
139 | 21 | describe('FirebaseDataConverter', () => {
|
140 |
| - it('Submission converts back and forth without loosing data.', () => { |
141 |
| - expect( |
142 |
| - FirebaseDataConverter.submissionToJS( |
143 |
| - FirebaseDataConverter.toSubmission( |
144 |
| - MockModel.job001, |
145 |
| - 'submission001', |
146 |
| - MockFirebaseData.submission001 |
147 |
| - ) as Submission |
148 |
| - ) |
149 |
| - ).toEqual(MockFirebaseData.submission001); |
150 |
| - }); |
151 |
| - |
152 | 22 | describe('toRole()', () => {
|
153 | 23 | it('converts enums to strings', () => {
|
154 | 24 | expect(FirebaseDataConverter.toRoleId(Role.OWNER)).toEqual('OWNER');
|
|
0 commit comments