Przeglądaj źródła

:recycle: fixing all tests | finishing grouping and membership join test

tags/0.0.1^2
toj 3 lat temu
rodzic
commit
bc304b86bb

+ 0
- 1
backend/lib/routes/profile/score.js Wyświetl plik

@@ -59,7 +59,6 @@ module.exports = {
59 59
                 maxDistanceMiles,
60 60
                 distanceUnit,
61 61
             )
62
-
63 62
             try {
64 63
                 if (!scoredProfiles) {
65 64
                     throw new RangeError('Unable to score profiles')

+ 0
- 4
backend/lib/services/membership.js Wyświetl plik

@@ -116,7 +116,6 @@ module.exports = class MembershipService extends Schmervice.Service {
116 116
             profileId,
117 117
             targetId,
118 118
         )
119
-
120 119
         if (matchingGroupingIds.length) {
121 120
             /** Grab all memberships associated with groupingIds */
122 121
             let memberships = await Membership.query().whereIn(
@@ -152,19 +151,16 @@ module.exports = class MembershipService extends Schmervice.Service {
152 151
                 membership_type: role,
153 152
                 can_edit: false,
154 153
             }
155
-
156 154
             const userMembership = await Membership.query(txn).insert({
157 155
                 profile_id: profileId,
158 156
                 ...membershipDetailsInCommon,
159 157
                 is_active: true,
160 158
             })
161
-
162 159
             const targetMembership = await Membership.query(txn).insert({
163 160
                 profile_id: targetId,
164 161
                 ...membershipDetailsInCommon,
165 162
                 is_active: false,
166 163
             })
167
-
168 164
             return {
169 165
                 memberships: [userMembership, targetMembership],
170 166
                 groupings: [],

+ 7
- 4
backend/lib/services/profile/index.js Wyświetl plik

@@ -216,8 +216,12 @@ module.exports = class ProfileService extends Schmervice.Service {
216 216
         if (scoring._isScorableResponse(responseToSave.response_key_id)) {
217 217
             // Convert -3 to 0, 0 to 3, 3 to 6
218 218
             const offset = (config.scoreVals.length - 1) / 2
219
-            const indexFromInput = parseInt(responseToSave.val) + offset
220
-            convertedResponse.val = config.scoreVals[indexFromInput].toString()
219
+            const scoreFromInput = parseInt(responseToSave.val) + offset
220
+            const scoreFromConfig = config.scoreVals.indexOf(scoreFromInput)
221
+            if (scoreFromConfig < 0) {
222
+                console.error('score not found in possible config responses')
223
+            }
224
+            convertedResponse.val = scoreFromConfig.toString()
221 225
         }
222 226
 
223 227
         await Response.query().insert(convertedResponse)
@@ -265,7 +269,6 @@ module.exports = class ProfileService extends Schmervice.Service {
265 269
         let profileIdsOfOppositeType = await Profile.query()
266 270
             .withGraphFetched('responses')
267 271
             .withGraphFetched('user')
268
-
269 272
         // TODO: Let Objection optimize this
270 273
         const isPosterOpposite = userProfile.user.is_poster == 1 ? 0 : 1
271 274
         profileIdsOfOppositeType = profileIdsOfOppositeType
@@ -295,6 +298,7 @@ module.exports = class ProfileService extends Schmervice.Service {
295 298
                 }
296 299
             }),
297 300
         )
301
+
298 302
         const distanceFilteredProfiles = zipcoder.filterByDistance(
299 303
             profilePlusDistance,
300 304
             maxDistance,
@@ -304,7 +308,6 @@ module.exports = class ProfileService extends Schmervice.Service {
304 308
             userProfile,
305 309
             this.scoreLookup,
306 310
         )
307
-
308 311
         // Order by score
309 312
         return scoredProfilesWithDistance.sort(
310 313
             (a, b) => b.score.total - a.score.total,

+ 0
- 1
backend/lib/services/profile/scorer.js Wyświetl plik

@@ -31,7 +31,6 @@ const scoreResponses = (seeker, potentialMatch, prescoreLookup) => {
31 31
         return {
32 32
             error: `complete responses for profile: ${seeker.profile_id} unqeual to profile: ${potentialMatch.profile_id} | ${seeker.responses.length}:${potentialMatch.responses.length}`,
33 33
         }
34
-
35 34
     const aRes = seeker.responses.filter(res =>
36 35
         _isScorableResponse(res.response_key_id),
37 36
     )

+ 8
- 9
backend/tests/matchqueue.spec.js Wyświetl plik

@@ -71,14 +71,6 @@ test('path /<profile_id>/queue/<target_id> should return ok on PATCH', async t =
71 71
     stub(server.models()['AspectLabel'], 'query').returns(mockReturn.labels)
72 72
     stub(server.models()['Aspect'], 'query').returns(mockReturn.aspects)
73 73
     stub(server.models()['MatchQueue'], 'query').returns({
74
-        // Mocked for markAsDeleted()
75
-        patch: () => ({
76
-            where: () => ({
77
-                andWhere: () => ({
78
-                    first: () => ({ patch: 'bop' }),
79
-                }),
80
-            }),
81
-        }),
82 74
         insert: queueRecord => {
83 75
             t.is(queueRecord.profile_id, params.profile_id)
84 76
             t.is(queueRecord.target_id, params.target_id)
@@ -89,6 +81,14 @@ test('path /<profile_id>/queue/<target_id> should return ok on PATCH', async t =
89 81
             where: (cmd, val) => {
90 82
                 return mockReturn.queue
91 83
             },
84
+            // Mocked for markAsDeleted()
85
+            andWhere: () => ({
86
+                patch: () => ({
87
+                    first: () => ({
88
+                        patch: 'bop',
89
+                    }),
90
+                }),
91
+            }),
92 92
         }),
93 93
     })
94 94
 
@@ -97,7 +97,6 @@ test('path /<profile_id>/queue/<target_id> should return ok on PATCH', async t =
97 97
      */
98 98
     const { payload } = await server.inject(pathToTest)
99 99
     const res = JSON.parse(payload)
100
-
101 100
     t.deepEqual(res.ok, true)
102 101
     t.deepEqual(
103 102
         res.data,

+ 37
- 30
backend/tests/membership-join.spec.js Wyświetl plik

@@ -12,19 +12,29 @@ const Membership = require('../lib/models/membership')
12 12
 const ProfileService = require('../lib/services/profile')
13 13
 
14 14
 const params = {
15
-    profile_id: 3
15
+    profile_id: 3,
16 16
 }
17 17
 const mockReturn = {
18 18
     memberships: [
19
-        { membership_id: 1, grouping_id: 1, is_active: false, profile_id: 3},
20
-        { membership_id: 2, grouping_id: 2, is_active: false, profile_id: 1},
21
-        { membership_id: 4, grouping_id: 3, is_active: false, profile_id: 2},
19
+        {
20
+            membership_id: 4,
21
+            profile_id: 3,
22
+            grouping_id: 3,
23
+            membership_type: 'participant',
24
+            can_edit: false,
25
+            is_active: true,
26
+        },
27
+        {
28
+            membership_id: 5,
29
+            profile_id: 1,
30
+            grouping_id: 3,
31
+            membership_type: 'participant',
32
+            can_edit: false,
33
+            is_active: false,
34
+        },
22 35
     ],
23
-    hasMatch: true,
24
-    groupings: [
25
-        { grouping_id: 1, profiles: [{ profile_id: 1 }, { profile_id: 3 }] },
26
-        { grouping_id: 2, profiles: [{ profile_id: 2 }, { profile_id: 1 }] },
27
-    ]
36
+    hasMatch: false,
37
+    groupings: [],
28 38
 }
29 39
 const pathToTest = {
30 40
     method: 'POST',
@@ -34,12 +44,12 @@ const pathToTest = {
34 44
         grouping_name: 'test_match',
35 45
         grouping_type: 'test_group',
36 46
         target_id: 1,
37
-        role: 'participant'
47
+        role: 'participant',
38 48
     },
39 49
 }
40 50
 
41
-test(`path ${pathToTest.url} should return ok on POST`, async t => {
42
-    console.log('-------------------------------\n')
51
+let membership_id = 4
52
+test(`path ${pathToTest.url} should return two memberships`, async t => {
43 53
     const server = Hapi.server()
44 54
     server.registerModel = () => {}
45 55
     server.models = () => ({
@@ -52,39 +62,36 @@ test(`path ${pathToTest.url} should return ok on POST`, async t => {
52 62
      * TODO: adjust stubs to mock joinGrouping more closely
53 63
      */
54 64
     stub(server.models()['Grouping'], 'query').returns({
55
-        whereIn: () => {
56
-            return mockReturn.groupings
57
-        },
65
+        whereIn: () => mockReturn.groupings,
58 66
     })
59 67
     stub(server.models()['Membership'], 'query').returns({
60
-        where: (pid) => {
61
-            console.log('pid', pid)
62
-            if(pid == 'membership_id') {
68
+        where: pid => {
69
+            if (pid == 'membership_id') {
63 70
                 return {
64 71
                     where: () => ({
65
-                        patch: () => {} 
66
-                    })
72
+                        patch: () => {},
73
+                    }),
67 74
                 }
68 75
             }
69
-            return mockReturn.memberships.filter(membership => {
70
-                return membership.profile_id == pid.profile_id
71
-            })
72
-        },
73
-        insert: () => {
74
-            mockReturn.memberships.push({ membership_id: 3, grouping_id: 3, is_active: true })
76
+            return mockReturn.memberships.filter(
77
+                membership => membership.profile_id == pid.profile_id,
78
+            )
75 79
         },
76
-        whereIn: () => {
77
-            return mockReturn.memberships
80
+        insert: toInsert => {
81
+            const membership = { membership_id, ...toInsert }
82
+            mockReturn.memberships.push(membership)
83
+            membership_id++
84
+            return membership
78 85
         },
86
+        whereIn: () => mockReturn.memberships,
79 87
     })
80 88
 
81 89
     /**
82 90
      * Test the server with registered models and services
83 91
      */
84 92
     const { payload } = await server.inject(pathToTest)
85
-    console.log('payload', payload)
86 93
     const res = JSON.parse(payload)
87 94
     t.deepEqual(res.ok, true)
88 95
     t.deepEqual(res.data, mockReturn)
89 96
     server.stop()
90
-})
97
+})

+ 2
- 2
backend/tests/respond.spec.js Wyświetl plik

@@ -20,7 +20,7 @@ const mockReturn = {
20 20
             response_id: 1,
21 21
             profile_id: 38,
22 22
             response_key_id: 6,
23
-            val: '400',
23
+            val: '2056',
24 24
         },
25 25
         {
26 26
             response_id: 2,
@@ -32,7 +32,7 @@ const mockReturn = {
32 32
 }
33 33
 const pathToTest = {
34 34
     method: 'POST',
35
-    url: `/${params.profile_id}/respond?response_key_id=5&val=999`,
35
+    url: `/${params.profile_id}/respond?response_key_id=5&val=2053`,
36 36
 }
37 37
 
38 38
 test('path /<profile_id>/respond should return ok on POST', async t => {

+ 6
- 6
backend/tests/score.spec.js Wyświetl plik

@@ -28,8 +28,8 @@ const mockReturn = {
28 28
             profile_id: 1,
29 29
             user: { is_poster: 1 },
30 30
             responses: [
31
-                { val: '100' },
32
-                { val: '200' },
31
+                { response_key_id: 1, val: '100' },
32
+                { response_key_id: 2, val: '200' },
33 33
                 { response_key_id: zipcodeKey, val: '90065' },
34 34
             ],
35 35
         },
@@ -37,8 +37,8 @@ const mockReturn = {
37 37
             profile_id: 2,
38 38
             user: { is_poster: 0 },
39 39
             responses: [
40
-                { val: '100' },
41
-                { val: '200' },
40
+                { response_key_id: 1, val: '100' },
41
+                { response_key_id: 2, val: '200' },
42 42
                 { response_key_id: zipcodeKey, val: '97002' },
43 43
             ],
44 44
         },
@@ -46,8 +46,8 @@ const mockReturn = {
46 46
             profile_id: 3,
47 47
             user: { is_poster: 0 },
48 48
             responses: [
49
-                { val: '200' },
50
-                { val: '200' },
49
+                { response_key_id: 1, val: '200' },
50
+                { response_key_id: 2, val: '200' },
51 51
                 { response_key_id: zipcodeKey, val: '96741' },
52 52
             ],
53 53
         },

Ładowanie…
Anuluj
Zapisz