1
- import { getHash } from "../../src/utils/getHash" ;
2
1
import { db } from "../../src/databases/databases" ;
3
2
import { client } from "../utils/httpClient" ;
4
3
import assert from "assert" ;
4
+ import { genUsers , User } from "../utils/genUser" ;
5
+ import { insertSegment } from "../utils/segmentQueryGen" ;
5
6
6
7
// helpers
7
8
const endpoint = "/api/getViewsForUser" ;
@@ -10,53 +11,46 @@ const getViewsForUser = (userID: string) => client({
10
11
params : { userID }
11
12
} ) ;
12
13
13
- const getViewUserOne = "getViewUser1" ;
14
- const userOneViewsFirst = 30 ;
15
- const userOneViewsSecond = 0 ;
14
+ const cases = [
15
+ "u-1" ,
16
+ "u-2" ,
17
+ "u-3"
18
+ ] ;
19
+ const users = genUsers ( "getViewUser" , cases ) ;
16
20
17
- const getViewUserTwo = "getViewUser2" ;
18
- const userTwoViews = 0 ;
19
-
20
- const getViewUserThree = "getViewUser3" ;
21
+ // set views for users
22
+ users [ "u-1" ] . info [ "views1" ] = 30 ;
23
+ users [ "u-1" ] . info [ "views2" ] = 0 ;
24
+ users [ "u-1" ] . info [ "views" ] = users [ "u-1" ] . info . views1 + users [ "u-1" ] . info . views2 ;
25
+ users [ "u-2" ] . info [ "views" ] = 0 ;
26
+ users [ "u-3" ] . info [ "views" ] = 0 ;
21
27
28
+ const checkUserViews = ( user : User ) =>
29
+ getViewsForUser ( user . privID )
30
+ . then ( result => {
31
+ assert . strictEqual ( result . status , 200 ) ;
32
+ assert . strictEqual ( result . data . viewCount , user . info . views ) ;
33
+ } ) ;
22
34
23
35
describe ( "getViewsForUser" , function ( ) {
24
36
before ( ( ) => {
25
- const insertSponsorTimeQuery = 'INSERT INTO "sponsorTimes" ("videoID", "startTime", "endTime", "votes", "UUID", "userID", "timeSubmitted", views, category, "actionType", "videoDuration", "shadowHidden", "hashedVideoID") VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' ;
26
- db . prepare ( "run" , insertSponsorTimeQuery , [ "getViewUserVideo" , 0 , 1 , 0 , "getViewUserVideo0" , getHash ( getViewUserOne ) , 0 , userOneViewsFirst , "sponsor" , "skip" , 0 , 0 , "getViewUserVideo" ] ) ;
27
- db . prepare ( "run" , insertSponsorTimeQuery , [ "getViewUserVideo" , 0 , 1 , 0 , "getViewUserVideo1" , getHash ( getViewUserOne ) , 0 , userOneViewsSecond , "sponsor" , "skip" , 0 , 0 , "getViewUserVideo" ] ) ;
28
- db . prepare ( "run" , insertSponsorTimeQuery , [ "getViewUserVideo" , 0 , 1 , 0 , "getViewUserVideo2" , getHash ( getViewUserTwo ) , 0 , userTwoViews , "sponsor" , "skip" , 0 , 0 , "getViewUserVideo" ] ) ;
29
- } ) ;
30
- it ( "Should get back views for user one" , ( done ) => {
31
- getViewsForUser ( getViewUserOne )
32
- . then ( result => {
33
- assert . strictEqual ( result . data . viewCount , userOneViewsFirst + userOneViewsSecond ) ;
34
- done ( ) ;
35
- } )
36
- . catch ( err => done ( err ) ) ;
37
- } ) ;
38
- it ( "Should get back views for user two" , ( done ) => {
39
- getViewsForUser ( getViewUserTwo )
40
- . then ( result => {
41
- assert . strictEqual ( result . data . viewCount , userTwoViews ) ;
42
- done ( ) ;
43
- } )
44
- . catch ( err => done ( err ) ) ;
37
+ // add views for users
38
+ insertSegment ( db , { userID : users [ "u-1" ] . pubID , views : users [ "u-1" ] . info . views1 } ) ;
39
+ insertSegment ( db , { userID : users [ "u-1" ] . pubID , views : users [ "u-1" ] . info . views2 } ) ;
40
+ insertSegment ( db , { userID : users [ "u-2" ] . pubID , views : users [ "u-2" ] . info . views } ) ;
45
41
} ) ;
46
- it ( "Should get 404 if no submissions" , ( done ) => {
47
- getViewsForUser ( getViewUserThree )
48
- . then ( result => {
49
- assert . strictEqual ( result . status , 404 ) ;
50
- done ( ) ;
51
- } )
52
- . catch ( err => done ( err ) ) ;
53
- } ) ;
54
- it ( "Should return 400 if no userID provided" , ( done ) => {
42
+ it ( "Should get back views for user one" , ( ) =>
43
+ checkUserViews ( users [ "u-1" ] )
44
+ ) ;
45
+ it ( "Should get back views for user two" , ( ) =>
46
+ checkUserViews ( users [ "u-2" ] )
47
+ ) ;
48
+ it ( "Should get 404 if no submissions" , ( ) =>
49
+ getViewsForUser ( users [ "u-3" ] . pubID )
50
+ . then ( result => assert . strictEqual ( result . status , 404 ) )
51
+ ) ;
52
+ it ( "Should return 400 if no userID provided" , ( ) =>
55
53
client ( { url : endpoint } )
56
- . then ( res => {
57
- assert . strictEqual ( res . status , 400 ) ;
58
- done ( ) ;
59
- } )
60
- . catch ( err => done ( err ) ) ;
61
- } ) ;
54
+ . then ( res => assert . strictEqual ( res . status , 400 ) )
55
+ ) ;
62
56
} ) ;
0 commit comments