diff --git a/.gitignore b/.gitignore
index a7995e24d..241a855cb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,7 +35,8 @@ ng-quill-tex-0.0.1.tgz
# misc
/.sass-cache
/connect.lock
-/test/*
+/test/coverage
+/test/result
/libpeerconnection.log
npm-debug.log
yarn-error.log
diff --git a/projects/shared-library/src/lib/testing/index.ts b/projects/shared-library/src/lib/testing/index.ts
index 0e54edb0f..1ba190e96 100644
--- a/projects/shared-library/src/lib/testing/index.ts
+++ b/projects/shared-library/src/lib/testing/index.ts
@@ -1,4 +1,3 @@
export * from './router-stubs';
export * from './mock-store';
export * from './mock-auth.service';
-export * from './test.data';
diff --git a/projects/shared-library/src/lib/testing/test.data.ts b/projects/shared-library/src/lib/testing/test.data.ts
deleted file mode 100644
index c68d0b27c..000000000
--- a/projects/shared-library/src/lib/testing/test.data.ts
+++ /dev/null
@@ -1,3095 +0,0 @@
-export const TEST_DATA = {
- "categories": [
- { "id": 1, "categoryName": "Special" },
- { "id": 2, "categoryName": "Programming" },
- { "id": 3, "categoryName": "Architecture" },
- { "id": 4, "categoryName": "Networking/Infrastructure" },
- { "id": 5, "categoryName": "Database" },
- { "id": 6, "categoryName": "Dev Ops" },
- { "id": 7, "categoryName": "UX/UI" }
- ],
- "categoryDictionary": {
- "1": {
- "id": 1,
- "categoryName": "Bit of sci-fi",
- "requiredForGamePlay": true
- },
- "2": {
- "id": 2,
- "categoryName": "Programming",
- "requiredForGamePlay": false
- },
- "3": {
- "id": 3,
- "categoryName": "Architecture",
- "requiredForGamePlay": false
- },
- "4": {
- "id": 4,
- "categoryName": "Networking/Infrastructure",
- "requiredForGamePlay": false
- },
- "5": {
- "id": 5,
- "categoryName": "Database",
- "requiredForGamePlay": false
- },
- "6": {
- "id": 6,
- "categoryName": "Dev Ops",
- "requiredForGamePlay": false
- },
- "7": {
- "id": 7,
- "categoryName": "UX/UI",
- "requiredForGamePlay": false
- },
- "8": {
- "id": 8,
- "categoryName": "Bit of fact",
- "requiredForGamePlay": true
- },
- "9": {
- "id": 9,
- "categoryName": "Hardware",
- "requiredForGamePlay": false
- }
- },
- "tagList": [
- "C#",
- "iOS",
- "Objective-C",
- "Swift",
- "Mobile",
- "Cloud",
- "AWS",
- "Azure",
- "Open Source",
- "NoSql",
- "SQL",
- "SQL Server",
- "MongoDB",
- "CI",
- "Selenium",
- "Agile",
- "Scrum",
- "Waterfall",
- "SDLC",
- "BI",
- "IoT",
- "Social",
- "Windows",
- "iPhone",
- "Analytics",
- "Data",
- "UX",
- "UI",
- "Python",
- "VB",
- ".Net",
- "ASP.Net",
- "Unity",
- "DI",
- "EF",
- "ORM",
- "Spring",
- "Hibernate",
- "Oracle",
- "DB2",
- "Java",
- "Ruby",
- "Rails",
- "MySQL",
- "Postgres",
- "Enterprise",
- "Active Directory",
- "C",
- "C++",
- "REST",
- "API",
- "SDK",
- "SharePoint",
- "CRM",
- "Dynamics CRM",
- "Salesforce",
- "JavaScript",
- "AngularJS",
- "MVC",
- "MVP",
- "MVVM",
- "View",
- "Controller",
- "Model",
- "Cassandra",
- "DocumentDB",
- "ColumnDB",
- "Elastic Search",
- "Neo4J",
- "GraphDB",
- "KeyValue",
- "Hadoop",
- "HBase",
- "Pig",
- "Hive",
- "Zookeeper",
- "Linux",
- "Mac OS",
- "Motherboard",
- "Apache",
- "Cordova",
- "SPA",
- "PhoneGap",
- "Universal Apps",
- "Xamarin",
- "Eclipse",
- "PHP",
- "T-SQL",
- "Stored Procedure",
- "Trigger",
- "NTFS",
- "Journaled",
- "BootCamp",
- "Office 365",
- "POP",
- "IMAP",
- "SMTP",
- "TCP/IP",
- "IP Address",
- "Domain Controller",
- "DNS",
- "DHCP",
- "SATA",
- "USB",
- "HDMI",
- "Firewire",
- "Lightening",
- "Edison",
- "Galileo",
- "Arduino",
- "Rasberry Pi",
- "TypeScript",
- "CoffeeScript",
- "jQuery",
- "3D Printer",
- "CAD",
- "Photoshop",
- "Illustrator",
- "jpg",
- "png",
- "Partition",
- "Unix",
- "kernel",
- "SOAP",
- "Authentication",
- "OAuth",
- "OpenID",
- "BitCoin",
- "ASP",
- "Mainframe",
- "Storyboard",
- "XCode",
- "AirDrop",
- "Bluetooth",
- "BLE",
- "ApplePay",
- "App Store",
- "Metal",
- "Pattern",
- "Distributed",
- "GIT"
- ],
- "questions": {
- "published": [
- {
- "id": "1",
- "questionText": "Which of the following function of Array object reverses the order of the elements of an array?",
- "answers": [
- {
- "id": 1,
- "answerText": "reverse()",
- "correct": true
- },
- {
- "id": 2,
- "answerText": "push()",
- "correct": false
- },
- {
- "id": 3,
- "answerText": "reduce()",
- "correct": false
- },
- {
- "id": 4,
- "answerText": "reduceRight()",
- "correct": false
- }
- ],
- "ordered": false,
- "tags": ["JavaScript", "front-end", "ES5"],
- "categoryIds": [2]
- },
- {
- "id": "2",
- "questionText": "Which of the following function of Array object calls a function for each element in the array?",
- "answers": [
- {
- "id": 1,
- "answerText": "concat()",
- "correct": false
- },
- {
- "id": 2,
- "answerText": "every()",
- "correct": false
- },
- {
- "id": 3,
- "answerText": "filter()",
- "correct": false
- },
- {
- "id": 4,
- "answerText": "forEach()",
- "correct": true
- }
- ],
- "ordered": false,
- "tags": ["JavaScript", "front-end"],
- "categoryIds": [2]
- },
- {
- "id": "3",
- "questionText": "Which of the following function of String object returns the index within the calling String object of the first occurrence of the specified value?",
- "answers": [
- {
- "id": 1,
- "answerText": "firstIndexOf()",
- "correct": false
- },
- {
- "id": 2,
- "answerText": "lastIndexOf()",
- "correct": false
- },
- {
- "id": 3,
- "answerText": "indexOf()",
- "correct": true
- },
- {
- "id": 4,
- "answerText": "search()",
- "correct": false
- }
- ],
- "ordered": false,
- "tags": ["JavaScript"],
- "categoryIds": [2]
- },
- {
- "id": "4",
- "questionText": "Which of the following function of Boolean object returns a string containing the source of the Boolean object?",
- "answers": [
- {
- "id": 1,
- "answerText": "valueOf()",
- "correct": false
- },
- {
- "id": 2,
- "answerText": "toSource()",
- "correct": true
- },
- {
- "id": 3,
- "answerText": "indexOf()",
- "correct": false
- },
- {
- "id": 4,
- "answerText": "toString()",
- "correct": false
- }
- ],
- "ordered": false,
- "tags": ["JavaScript"],
- "categoryIds": [2]
- },
- {
- "id": "5",
- "questionText": "Which of the following is true about cookie handling in JavaScript?",
- "answers": [
- {
- "id": 1,
- "answerText": "JavaScript can manipulate cookies using the cookie property of the Document object.",
- "correct": false
- },
- {
- "id": 2,
- "answerText": "JavaScript can read, create, modify, and delete the cookie or cookies that apply to the current web page.",
- "correct": false
- },
- {
- "id": 3,
- "answerText": "All of the above.",
- "correct": true
- },
- {
- "id": 4,
- "answerText": "None of the above.",
- "correct": false
- }
- ],
- "ordered": true,
- "tags": ["JavaScript", "ES5"],
- "categoryIds": [2]
- },
- {
- "id": "6",
- "questionText": "What's the best Trivia game?",
- "answers": [
- {
- "id": 1,
- "answerText": "Quiz Up",
- "correct": false
- },
- {
- "id": 2,
- "answerText": "Trivia Crack",
- "correct": false
- },
- {
- "id": 3,
- "answerText": "The one I'm playing",
- "correct": true
- },
- {
- "id": 4,
- "answerText": "It's subjective",
- "correct": false
- }
- ],
- "ordered": false,
- "tags": ["gaming"],
- "categoryIds": [1]
- }
- ],
- "unpublished": []
- },
- "userList": [
- {
- "androidPushTokens": [
- {
- "online": false,
- "token": "ct7vhZOa__U:APA91bFCVEncCZg__c0P8kZo2k0WfCB_nVUds4sViaQiyPmUX7VUf29vfKUEQ4jRQ5BRq9BMRNdZDrVIVgMH-fGB6f1AEXXca4TAjPOGoaFVjKMA7952BMuaLy4-Z9-y0EC76abGDPsJ"
- }
- ],
- "authState": null,
- "bulkUploadPermissionStatus": 'false',
- "bulkUploadPermissionStatusUpdateTime": 1588266851711,
- "croppedImageUrl": '',
- "originalImageUrl": '',
- "imageType": '',
- "gamePlayed": [],
- "captured": "web",
- "categoryIds": [
- 2,
- 8,
- 3,
- 4,
- 5,
- 9,
- 7
- ],
- "displayName": "Priyanka 124",
- "email": "priyankamavani99+124@gmail.com",
- "idToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ijg4ODQ4YjVhZmYyZDUyMDEzMzFhNTQ3ZDE5MDZlNWFhZGY2NTEzYzgiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZS5jb20vcndhLXRyaXZpYS1kZXYtZTU3ZmMiLCJhdWQiOiJyd2EtdHJpdmlhLWRldi1lNTdmYyIsImF1dGhfdGltZSI6MTU4NzEyMTIwNiwidXNlcl9pZCI6IjRrRmE2SFJ2UDVPaHZZWHNIOW1Fc1JyWGo0bzIiLCJzdWIiOiI0a0ZhNkhSdlA1T2h2WVhzSDltRXNSclhqNG8yIiwiaWF0IjoxNTg4MjY0OTIzLCJleHAiOjE1ODgyNjg1MjMsImVtYWlsIjoicHJpeWFua2FtYXZhbmk5OSsxMjRAZ21haWwuY29tIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJmaXJlYmFzZSI6eyJpZGVudGl0aWVzIjp7ImVtYWlsIjpbInByaXlhbmthbWF2YW5pOTkrMTI0QGdtYWlsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6InBhc3N3b3JkIn19.PYorEbISiEgg728CNYxvFcJU4PxCvts50IoumdTN39xF9yKQl0t1rZt8CkNjPu9lP_eZcvbxHPET583LhqiVR6E-HjxMACV23tTrSpJlEfi3FTcG4BlELDNOIt529Il0xYlDJaLCTnT8D3uJV79dBpyFYQ9tP3RRXxTdJv4HZXYbjiXLmuK3tOwLiLzI_ZWgFDfpYHqg17bJKTtfjTC7blorhpZYfDDrc6BH4y3aJaN84CJtIhTeN4fNePjEBRWDWa3hNZs2lDik5eslRWXP8HR09k4c251UKw1vcehZm-ISzYSVuYHCMoK9eDjB2Hj4qx6oRhdbJh_WiRul_WvPEw",
- "isAutoComplete": false,
- "isCategorySet": true,
- "location": "Surendranagar,Gujarat",
- "phoneNo": null,
- "profilePictureUrl": "/assets/images/default-avatar-small.png",
- "tags": [
-
- ],
- "totalFriends": 0,
- "userId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2"
- },
- {
- "androidPushTokens": [
- {
- "online": false,
- "token": "ct7vhZOa__U:APA91bFCVEncCZg__c0P8kZo2k0WfCB_nVUds4sViaQiyPmUX7VUf29vfKUEQ4jRQ5BRq9BMRNdZDrVIVgMH-fGB6f1AEXXca4TAjPOGoaFVjKMA7952BMuaLy4-Z9-y0EC76abGDPsJ"
- }
- ],
- "authState": null,
- "bulkUploadPermissionStatus": 'false',
- "bulkUploadPermissionStatusUpdateTime": 1588266851711,
- "croppedImageUrl": '',
- "originalImageUrl": '',
- "imageType": '',
- "gamePlayed": [],
- "captured": "web",
- "categoryIds": [
- 2,
- 8,
- 3,
- 4,
- 5,
- 9,
- 7
- ],
- "displayName": "Priyanka 124",
- "email": "priyankamavani99+124@gmail.com",
- "idToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ijg4ODQ4YjVhZmYyZDUyMDEzMzFhNTQ3ZDE5MDZlNWFhZGY2NTEzYzgiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZS5jb20vcndhLXRyaXZpYS1kZXYtZTU3ZmMiLCJhdWQiOiJyd2EtdHJpdmlhLWRldi1lNTdmYyIsImF1dGhfdGltZSI6MTU4NzEyMTIwNiwidXNlcl9pZCI6IjRrRmE2SFJ2UDVPaHZZWHNIOW1Fc1JyWGo0bzIiLCJzdWIiOiI0a0ZhNkhSdlA1T2h2WVhzSDltRXNSclhqNG8yIiwiaWF0IjoxNTg4MjY0OTIzLCJleHAiOjE1ODgyNjg1MjMsImVtYWlsIjoicHJpeWFua2FtYXZhbmk5OSsxMjRAZ21haWwuY29tIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJmaXJlYmFzZSI6eyJpZGVudGl0aWVzIjp7ImVtYWlsIjpbInByaXlhbmthbWF2YW5pOTkrMTI0QGdtYWlsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6InBhc3N3b3JkIn19.PYorEbISiEgg728CNYxvFcJU4PxCvts50IoumdTN39xF9yKQl0t1rZt8CkNjPu9lP_eZcvbxHPET583LhqiVR6E-HjxMACV23tTrSpJlEfi3FTcG4BlELDNOIt529Il0xYlDJaLCTnT8D3uJV79dBpyFYQ9tP3RRXxTdJv4HZXYbjiXLmuK3tOwLiLzI_ZWgFDfpYHqg17bJKTtfjTC7blorhpZYfDDrc6BH4y3aJaN84CJtIhTeN4fNePjEBRWDWa3hNZs2lDik5eslRWXP8HR09k4c251UKw1vcehZm-ISzYSVuYHCMoK9eDjB2Hj4qx6oRhdbJh_WiRul_WvPEw",
- "isAutoComplete": false,
- "isCategorySet": true,
- "location": "Surendranagar,Gujarat",
- "phoneNo": null,
- "profilePictureUrl": "/assets/images/default-avatar-small.png",
- "tags": [
-
- ],
- "totalFriends": 0,
- "userId": "yP7sLu5TmYRUO9YT4tWrYLAqxSz1"
- },
- {
- "androidPushTokens": [
- {
- "online": false,
- "token": "ct7vhZOa__U:APA91bFCVEncCZg__c0P8kZo2k0WfCB_nVUds4sViaQiyPmUX7VUf29vfKUEQ4jRQ5BRq9BMRNdZDrVIVgMH-fGB6f1AEXXca4TAjPOGoaFVjKMA7952BMuaLy4-Z9-y0EC76abGDPsJ"
- }
- ],
- "authState": null,
- "bulkUploadPermissionStatus": 'false',
- "bulkUploadPermissionStatusUpdateTime" : 1588266851711,
- "croppedImageUrl": '',
- "originalImageUrl": '',
- "imageType": '',
- "gamePlayed": [],
- "captured": "web",
- "categoryIds": [
- 2,
- 8,
- 3,
- 4,
- 5,
- 9,
- 7
- ],
- "displayName": "test",
- "email": "test@test.com",
- "idToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ijg4ODQ4YjVhZmYyZDUyMDEzMzFhNTQ3ZDE5MDZlNWFhZGY2NTEzYzgiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZS5jb20vcndhLXRyaXZpYS1kZXYtZTU3ZmMiLCJhdWQiOiJyd2EtdHJpdmlhLWRldi1lNTdmYyIsImF1dGhfdGltZSI6MTU4NzEyMTIwNiwidXNlcl9pZCI6IjRrRmE2SFJ2UDVPaHZZWHNIOW1Fc1JyWGo0bzIiLCJzdWIiOiI0a0ZhNkhSdlA1T2h2WVhzSDltRXNSclhqNG8yIiwiaWF0IjoxNTg4MjY0OTIzLCJleHAiOjE1ODgyNjg1MjMsImVtYWlsIjoicHJpeWFua2FtYXZhbmk5OSsxMjRAZ21haWwuY29tIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJmaXJlYmFzZSI6eyJpZGVudGl0aWVzIjp7ImVtYWlsIjpbInByaXlhbmthbWF2YW5pOTkrMTI0QGdtYWlsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6InBhc3N3b3JkIn19.PYorEbISiEgg728CNYxvFcJU4PxCvts50IoumdTN39xF9yKQl0t1rZt8CkNjPu9lP_eZcvbxHPET583LhqiVR6E-HjxMACV23tTrSpJlEfi3FTcG4BlELDNOIt529Il0xYlDJaLCTnT8D3uJV79dBpyFYQ9tP3RRXxTdJv4HZXYbjiXLmuK3tOwLiLzI_ZWgFDfpYHqg17bJKTtfjTC7blorhpZYfDDrc6BH4y3aJaN84CJtIhTeN4fNePjEBRWDWa3hNZs2lDik5eslRWXP8HR09k4c251UKw1vcehZm-ISzYSVuYHCMoK9eDjB2Hj4qx6oRhdbJh_WiRul_WvPEw",
- "isAutoComplete": false,
- "isCategorySet": true,
- "location": "Ahmedabad,Gujarat",
- "phoneNo": null,
- "profilePictureUrl": "/assets/images/default-avatar-small.png",
- "tags": [
-
- ],
- "totalFriends": 0,
- "userId": "yP7sLu5TmYRUO9YT4tWrYLAqxSz1"
- }
- ],
-
- "userDict": {
- 'ssHmHkKq9BPByP9c4CtmEqvO4xp2': {
- "userId": "ssHmHkKq9BPByP9c4CtmEqvO4xp2",
- "displayName": "trivia",
- "email": "trivia@realworldfullstack.io",
- "roles": {},
- "authState": null
- }
- },
-
- "leaderBoard": {
- "1": [
- { "score": 123, "userId": "ssHmHkKq9BPByP9c4CtmEqvO4xp2" },
- { "score": 406, "userId": "ssHmHkKq9BPByo9c4CtmEqvO4xp2" },
- { "score": 10, "userId": "ssHmHkKq9BPSyP9c4CtmEqvO4xp2" },
- { "score": 80, "userId": "ssHmHkKq9BPSyP9c4CtmEqvO4xp2" },
- { "score": 100, "userId": "ssHmHkKq9BPPyP9c4CtmEqvO4xp2" },
- { "score": 102, "userId": "ssHmHkKq9BPYyP9c4CtmEqvO4xp2" },
- { "score": 109, "userId": "ssHmHkKq9BPOyP9c4CtmEqvO4xp2" },
- { "score": 105, "userId": "ssHmHkKq9BPLyP9c4CtmEqvO4xp2" },
- { "score": 1000, "userId": "ssHmHkKq9BPRyP9c4CtmEqvO4xp2" },
- { "score": 50, "userId": "ssHmHkKq9BPTyP9c4CtmEqvO4xp2" }
- ],
- "2": [
- { "score": 100, "userId": "ssHmHkKq9BPByP9c4CtmEqvO4xp2" },
- { "score": 40, "userId": "ssHmHkKq9BPByo9c4CtmEqvO4xp2" },
- { "score": 54, "userId": "ssHmHkKq9BPSyP9c4CtmEqvO4xp2" },
- { "score": 100, "userId": "ssHmHkKq9BPPyP9c4CtmEqvO4xp2" },
- { "score": 102, "userId": "ssHmHkKq9BPYyP9c4CtmEqvO4xp2" },
- { "score": 109, "userId": "ssHmHkKq9BPOyP9c4CtmEqvO4xp2" },
- { "score": 105, "userId": "ssHmHkKq9BPLyP9c4CtmEqvO4xp2" },
- { "score": 1000, "userId": "ssHmHkKq9BPRyP9c4CtmEqvO4xp2" },
- { "score": 50, "userId": "ssHmHkKq9BPTyP9c4CtmEqvO4xp2" },
- { "score": 50, "userId": "ssHmHkKq9BPTyP9c4CtmEqvO4xp2" }],
- "3": [
- { "score": 5, "userId": "ssHmHkKq9BPByP9c4CtmEqvO4xp2" },
- { "score": 80, "userId": "ssHmHkKq9BPByo9c4CtmEqvO4xp2" },
- { "score": 500, "userId": "ssHmHkKq9BPSyP9c4CtmEqvO4xp2" },
- { "score": 100, "userId": "ssHmHkKq9BPPyP9c4CtmEqvO4xp2" },
- { "score": 102, "userId": "ssHmHkKq9BPYyP9c4CtmEqvO4xp2" },
- { "score": 109, "userId": "ssHmHkKq9BPOyP9c4CtmEqvO4xp2" },
- { "score": 105, "userId": "ssHmHkKq9BPLyP9c4CtmEqvO4xp2" },
- { "score": 1000, "userId": "ssHmHkKq9BPRyP9c4CtmEqvO4xp2" },
- { "score": 50, "userId": "ssHmHkKq9BPTyP9c4CtmEqvO4xp2" },
- { "score": 50, "userId": "ssHmHkKq9BPTyP9c4CtmEqvO4xp2" }
- ]
- },
- blog: [{
- 'author': 'Akshay Nihalaney',
- 'blogNo': 0,
- 'categories': [
- "angular",
- "jasmine",
- "jest",
- "testing",
- "protractor"],
- 'commentCount': 5,
- 'content': 'test',
- 'guid': 'https://medium.com/p/6a0e03a89038',
- 'id': 1532279340000,
- 'link': 'https://blog.realworldfullstack.io/real-world-app-part-22-angular-testing-with-protractor-jasmine-and-jest-6a0e03a89038?source=rss----5fcb8756dcc3---4',
- 'pubDate': "2018-07-22 17:09:00",
- 'share_status': false,
- 'subtitle': "End to end testing with Protractor and unit tests with Jest",
- 'thumbnail': "https://cdn-images-1.medium.com/max/1024/1*VAuIh4dq6BxKDL8yXmGMTw.jpeg",
- 'title': "Real World App - Part 22: Angular Testing with Protractor, Jasmine and Jest",
- 'viewCount': 100,
- 'created_uuid': 'ssHmHkKq9BPByP9c4CtmEqvO4xp2'
- }
- ],
- realTimeStats:
- {
- 'active_games': 2,
- 'game_played': 2518,
- 'total_questions': 106,
- 'total_users': 67
- },
- "game": [
- {
- "gameOptions": {
- "categoryIds": [
- 1,
- 8,
- 2,
- 3,
- 4,
- 5,
- 7,
- 9
- ],
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "opponentType": 0,
- "playerMode": 1,
- "tags": []
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "yP7sLu5TmYRUO9YT4tWrYLAqxSz1"
- ],
- "nextTurnPlayerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "0OpXYFZSk505ra1jW6fb",
- "addedOn": 1587463516000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 2,
- "answerCorrect": true,
- "round": 1,
- "categoryId": [
- 5
- ],
- "badge": {
- "name": "scissors",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "T5NYSrY4BrlwI2j2zFz4",
- "addedOn": 1587463525000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 3,
- "answerCorrect": true,
- "round": 1,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "paper",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "0POnDURRgIGOs9kU2nLH",
- "addedOn": 1587463537000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 1,
- "answerCorrect": false,
- "round": 1,
- "categoryId": [
- 8
- ],
- "badge": {
- "name": "lizard",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "yP7sLu5TmYRUO9YT4tWrYLAqxSz1",
- "questionId": "3o2wdaX1HzBWtKZCLGi6",
- "addedOn": 1587463593000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 3,
- "answerCorrect": true,
- "round": 1,
- "categoryId": [
- 8
- ],
- "badge": {
- "name": "lizard",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "yP7sLu5TmYRUO9YT4tWrYLAqxSz1",
- "questionId": "4h2XmfCQH1fVP7LtLN26",
- "addedOn": 1587463604000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 1,
- "answerCorrect": false,
- "round": 1,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "rock",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "GkHDJPwUUYF8C57hBTfU",
- "addedOn": 1587463649000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 2,
- "answerCorrect": true,
- "round": 2,
- "categoryId": [
- 3
- ],
- "badge": {
- "name": "rock",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "7YPp6rOYJZ1LjUK0E3qy",
- "addedOn": 1587463658000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 2,
- "answerCorrect": true,
- "round": 2,
- "categoryId": [
- 8
- ],
- "badge": {
- "name": "lizard",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "GMwmK5ckSoQuRXRpB0jb",
- "addedOn": 1587463668000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 2,
- "answerCorrect": true,
- "round": 2,
- "categoryId": [
- 4
- ],
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "gqyxSCBlWNIL3IUJnop1",
- "addedOn": 1587463678000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 2,
- "answerCorrect": true,
- "round": 2,
- "categoryId": [
- 4
- ],
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "NmK5ApBbcqV7t3JVZGTh",
- "addedOn": 1587463686000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 5,
- "answerCorrect": false,
- "round": 2,
- "categoryId": [
- 4
- ],
- "isReported": false
- },
- {
- "playerId": "yP7sLu5TmYRUO9YT4tWrYLAqxSz1",
- "questionId": "ZvRtEegq8CPySojR6RUd",
- "addedOn": 1587463734000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 2,
- "answerCorrect": false,
- "round": 2,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "paper",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "USxShnwfA65wkxs2X9rY",
- "addedOn": 1587463742000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 1,
- "answerCorrect": true,
- "round": 3,
- "categoryId": [
- 4
- ],
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "544BhjgXE070vNC0II5q",
- "addedOn": 1587463751000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 8,
- "answerCorrect": true,
- "round": 3,
- "categoryId": [
- 4
- ],
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "8QgcZTS0cQAokNG7oqQr",
- "addedOn": 1587463775000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 4,
- "answerCorrect": true,
- "round": 3,
- "categoryId": [
- 9
- ],
- "isReported": false
- }
- ],
- "gameId": "vTzY3HeUvy9lXxaGHa0d",
- "GameStatus": "waiting for next question",
- "createdAt": 1587463514000,
- "turnAt": 1588206930838,
- "gameOverAt": 1587463792000,
- "reminder32Min": false,
- "reminder8Hr": false,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 2,
- "badge": [
- "scissors",
- "paper",
- "rock",
- "lizard"
- ],
- "consecutiveCorrectAnswers": 1,
- "score": 10
- },
- "yP7sLu5TmYRUO9YT4tWrYLAqxSz1": {
- "avgAnsTime": 2,
- "badge": [
- "lizard"
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 1
- }
- },
- "round": 3
- },
- {
- "gameOptions": {
- "categoryIds": [
- 1,
- 8,
- 2,
- 3,
- 4,
- 5,
- 7,
- 9
- ],
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "opponentType": 0,
- "playerMode": 1,
- "tags": []
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "yP7sLu5TmYRUO9YT4tWrYLAqxSz1"
- ],
- "nextTurnPlayerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "0OpXYFZSk505ra1jW6fb",
- "addedOn": 1587463516000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 2,
- "answerCorrect": true,
- "round": 1,
- "categoryId": [
- 5
- ],
- "badge": {
- "name": "scissors",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "T5NYSrY4BrlwI2j2zFz4",
- "addedOn": 1587463525000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 3,
- "answerCorrect": true,
- "round": 1,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "paper",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "0POnDURRgIGOs9kU2nLH",
- "addedOn": 1587463537000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 1,
- "answerCorrect": false,
- "round": 1,
- "categoryId": [
- 8
- ],
- "badge": {
- "name": "lizard",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "yP7sLu5TmYRUO9YT4tWrYLAqxSz1",
- "questionId": "3o2wdaX1HzBWtKZCLGi6",
- "addedOn": 1587463593000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 3,
- "answerCorrect": true,
- "round": 1,
- "categoryId": [
- 8
- ],
- "badge": {
- "name": "lizard",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "yP7sLu5TmYRUO9YT4tWrYLAqxSz1",
- "questionId": "4h2XmfCQH1fVP7LtLN26",
- "addedOn": 1587463604000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 1,
- "answerCorrect": false,
- "round": 1,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "rock",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "GkHDJPwUUYF8C57hBTfU",
- "addedOn": 1587463649000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 2,
- "answerCorrect": true,
- "round": 2,
- "categoryId": [
- 3
- ],
- "badge": {
- "name": "rock",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "7YPp6rOYJZ1LjUK0E3qy",
- "addedOn": 1587463658000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 2,
- "answerCorrect": true,
- "round": 2,
- "categoryId": [
- 8
- ],
- "badge": {
- "name": "lizard",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "GMwmK5ckSoQuRXRpB0jb",
- "addedOn": 1587463668000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 2,
- "answerCorrect": true,
- "round": 2,
- "categoryId": [
- 4
- ],
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "gqyxSCBlWNIL3IUJnop1",
- "addedOn": 1587463678000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 2,
- "answerCorrect": true,
- "round": 2,
- "categoryId": [
- 4
- ],
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "NmK5ApBbcqV7t3JVZGTh",
- "addedOn": 1587463686000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 5,
- "answerCorrect": false,
- "round": 2,
- "categoryId": [
- 4
- ],
- "isReported": false
- },
- {
- "playerId": "yP7sLu5TmYRUO9YT4tWrYLAqxSz1",
- "questionId": "ZvRtEegq8CPySojR6RUd",
- "addedOn": 1587463734000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 2,
- "answerCorrect": false,
- "round": 2,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "paper",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "USxShnwfA65wkxs2X9rY",
- "addedOn": 1587463742000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 1,
- "answerCorrect": true,
- "round": 3,
- "categoryId": [
- 4
- ],
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "544BhjgXE070vNC0II5q",
- "addedOn": 1587463751000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 8,
- "answerCorrect": true,
- "round": 3,
- "categoryId": [
- 4
- ],
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "8QgcZTS0cQAokNG7oqQr",
- "addedOn": 1587463775000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 4,
- "answerCorrect": true,
- "round": 3,
- "categoryId": [
- 9
- ],
- "isReported": false
- }
- ],
- "gameId": "vTzY3HeUvy9lXxaGHa0d",
- "GameStatus": "waiting for next question",
- "createdAt": 1587463514000,
- "turnAt": 1588197930838,
- "gameOverAt": 1587463792000,
- "reminder32Min": false,
- "reminder8Hr": false,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 2,
- "badge": [
- "scissors",
- "paper",
- "rock",
- "lizard"
- ],
- "consecutiveCorrectAnswers": 1,
- "score": 10
- },
- "yP7sLu5TmYRUO9YT4tWrYLAqxSz1": {
- "avgAnsTime": 2,
- "badge": [
- "lizard"
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 1
- }
- },
- "round": 3
- },
- {
- "gameOptions": {
- "categoryIds": [
- 1,
- 8,
- 2,
- 4,
- 7,
- 9
- ],
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "playerMode": 0,
- "rematch": true,
- "tags": [
-
- ]
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2"
- ],
- "nextTurnPlayerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "4woefFvfN4tjwy4d75ai",
- "addedOn": 1588682704000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 2,
- "answerCorrect": false,
- "round": 1,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "rock",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "Z8mHBiJFAKtbDjKaPMrr",
- "addedOn": 1588682713000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 4,
- "answerCorrect": false,
- "round": 2,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "rock",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "qrSZKsIk8MkoZlq0IRoe",
- "addedOn": 1588682725000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 5,
- "answerCorrect": true,
- "round": 3,
- "categoryId": [
- 8
- ],
- "badge": {
- "name": "lizard",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "0rJfn8pBBJtL2VmxZKoX",
- "addedOn": 1588682738000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 1,
- "answerCorrect": false,
- "round": 4,
- "categoryId": [
- 4
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "PoVMQ2E2aWulS8i3otoo",
- "addedOn": 1588682745000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 2,
- "answerCorrect": true,
- "round": 5,
- "categoryId": [
- 4
- ],
- "badge": {
- "name": "paper",
- "won": true
- },
- "isReported": false
- }
- ],
- "gameId": "DAojdtJcizXpgxvHwzAU",
- "GameStatus": "time expired",
- "createdAt": 1588682703000,
- "turnAt": 1588682750000,
- "gameOverAt": 1588798644000,
- "reminder32Min": true,
- "reminder8Hr": true,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 2,
- "badge": [
- "lizard",
- "paper"
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 2
- }
- },
- "round": 5
- },
- {
- "gameOptions": {
- "categoryIds": [
- 1,
- 8,
- 2,
- 4,
- 7,
- 9
- ],
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "opponentType": null,
- "playerMode": "0",
- "tags": [
- "java",
- "class",
- "base",
- "c",
- "milan",
- "test"
- ]
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2"
- ],
- "nextTurnPlayerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "GEeTTRCRNb3I0TaKRv18",
- "addedOn": 1588679169000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 0,
- "answerCorrect": true,
- "round": 1,
- "categoryId": [
- 4
- ],
- "badge": {
- "name": "paper",
- "won": true
- },
- "isReported": false
- }
- ],
- "gameId": "HqUyq0qaCJ5KA9qQatMx",
- "GameStatus": "time expired",
- "createdAt": 1588679168000,
- "turnAt": 1588679172000,
- "gameOverAt": 1588795044000,
- "reminder32Min": true,
- "reminder8Hr": true,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 0,
- "badge": [
- "paper"
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 1
- }
- },
- "round": 1
- },
- {
- "gameOptions": {
- "categoryIds": [
- 1,
- 8,
- 2,
- 4,
- 7,
- 9
- ],
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "playerMode": 0,
- "tags": [
-
- ]
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2"
- ],
- "nextTurnPlayerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "4rcbqMO7CuvdAjFOqxzJ",
- "addedOn": 1588682611000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 1,
- "answerCorrect": false,
- "round": 1,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "NkZ60EgiuYBsqt22B3pn",
- "addedOn": 1588682618000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 5,
- "answerCorrect": false,
- "round": 2,
- "categoryId": [
- 8
- ],
- "badge": {
- "name": "lizard",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "EtRkEUKfEV6ggsNeFKa6",
- "addedOn": 1588682638000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 4,
- "answerCorrect": true,
- "round": 3,
- "categoryId": [
- 4
- ],
- "badge": {
- "name": "paper",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "EEKCxEpDwMgNnvA8A3AF",
- "addedOn": 1588682651000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 2,
- "answerCorrect": true,
- "round": 4,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "rock",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "5VYHKNb6ID6bpXLb1Yvj",
- "addedOn": 1588682678000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 9,
- "answerCorrect": false,
- "round": 5,
- "categoryId": [
- 9
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "BXlrHtCVX1K8cktlL8BZ",
- "addedOn": 1588682693000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 4,
- "answerCorrect": false,
- "round": 6,
- "categoryId": [
- "8"
- ],
- "badge": {
- "name": "lizard",
- "won": false
- },
- "isReported": false
- }
- ],
- "gameId": "aEFryEhFppFLxmxXZ1Mh",
- "GameStatus": "completed",
- "createdAt": 1588682610000,
- "turnAt": 1588682699000,
- "gameOverAt": 1588682701000,
- "reminder32Min": false,
- "reminder8Hr": false,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 4,
- "badge": [
- "paper",
- "rock"
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 2
- }
- },
- "round": 6
- },
- {
- "gameOptions": {
- "categoryIds": [
- 1,
- 8,
- 2,
- 4,
- 7,
- 9
- ],
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "opponentType": null,
- "playerMode": "0",
- "tags": [
- "java",
- "class",
- "base",
- "c",
- "milan",
- "test"
- ]
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2"
- ],
- "nextTurnPlayerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "D84v6F668ABL3HPW7OA2",
- "addedOn": 1588223054000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 1,
- "categoryId": [
- 1
- ],
- "badge": {
- "name": "spoke",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "UMRsetdzrQ5iOJFdn1X7",
- "addedOn": 1588223059000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 0,
- "answerCorrect": true,
- "round": 2,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "rock",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "1v3zOKOs8B2xLyzPfT2P",
- "addedOn": 1588223067000,
- "playerAnswerId": null,
- "playerAnswerInSeconds": 16,
- "answerCorrect": false,
- "round": 3,
- "categoryId": [
- 9
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "9UnwPpseIpq4VeZ9p9v1",
- "addedOn": 1588223111000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 0,
- "answerCorrect": true,
- "round": 4,
- "categoryId": [
- 1
- ],
- "badge": {
- "name": "spoke",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "PyzJT210UrMwdImwgsRB",
- "addedOn": 1588223123000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 5,
- "categoryId": [
- 8
- ],
- "badge": {
- "name": "lizard",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "GMwmK5ckSoQuRXRpB0jb",
- "addedOn": 1588223127000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 1,
- "answerCorrect": false,
- "round": 6,
- "categoryId": [
- 4
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- }
- ],
- "gameId": "5rYHjQ78x1OGUJevy2cK",
- "GameStatus": "completed",
- "createdAt": 1588223053000,
- "turnAt": 1588223131000,
- "gameOverAt": 1588223132000,
- "reminder32Min": false,
- "reminder8Hr": false,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 2,
- "badge": [
- "rock",
- "spoke"
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 2
- }
- },
- "round": 6
- },
- {
- "gameOptions": {
- "categoryIds": [
- 1,
- 8,
- 2,
- 4,
- 7,
- 9
- ],
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "opponentType": null,
- "playerMode": "0",
- "tags": [
-
- ]
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2"
- ],
- "nextTurnPlayerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "9KFazD542SzJ3r82EghZ",
- "addedOn": 1587368865000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 0,
- "answerCorrect": true,
- "round": 1,
- "categoryId": [
- "1"
- ],
- "badge": {
- "name": "spoke",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "fTJys3cjkl2xKhYAnFeE",
- "addedOn": 1587368884000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 1,
- "answerCorrect": false,
- "round": 2,
- "categoryId": [
- "2"
- ],
- "badge": {
- "name": "paper",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "uX4QxAXokgu6rRbvZlIG",
- "addedOn": 1587368891000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 3,
- "categoryId": [
- "2"
- ],
- "badge": {
- "name": "rock",
- "won": false
- },
- "isReported": true
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "AMZvRYjcCLQoV3EbMY8A",
- "addedOn": 1587368902000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 4,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "Q1W3Z9Wi0wDCrMdE4NSb",
- "addedOn": 1587368909000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 5,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "paper",
- "won": false
- },
- "isReported": false
- }
- ],
- "gameId": "WDX3q3509ZVHcL1R1XS3",
- "GameStatus": "completed",
- "createdAt": 1587368863000,
- "turnAt": 1587368912000,
- "gameOverAt": 1587368913000,
- "reminder32Min": false,
- "reminder8Hr": false,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 0,
- "badge": [
- "spoke"
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 1
- }
- },
- "round": 5
- },
- {
- "gameOptions": {
- "categoryIds": [
- 1,
- 8,
- 2,
- 4,
- 7,
- 9
- ],
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "opponentType": null,
- "playerMode": "0",
- "tags": [
- "java",
- "class",
- "base",
- "c",
- "milan",
- "test"
- ]
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2"
- ],
- "nextTurnPlayerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "USxShnwfA65wkxs2X9rY",
- "addedOn": 1587128856000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 0,
- "answerCorrect": true,
- "round": 1,
- "categoryId": [
- 4
- ],
- "badge": {
- "name": "rock",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "nL0R1frXsWNdElOhUmtF",
- "addedOn": 1587128863000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 2,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "Qc0wXfHttTdDbVtQpZ4a",
- "addedOn": 1587128868000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 3,
- "categoryId": [
- 8
- ],
- "badge": {
- "name": "lizard",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "BvK5KEmkOxl2cVi6f5Dz",
- "addedOn": 1587128873000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 4,
- "categoryId": [
- "8"
- ],
- "badge": {
- "name": "lizard",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "BXlrHtCVX1K8cktlL8BZ",
- "addedOn": 1587128878000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 0,
- "answerCorrect": true,
- "round": 5,
- "categoryId": [
- "8"
- ],
- "badge": {
- "name": "lizard",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "8FLY1x6pefEPRbUOIKkp",
- "addedOn": 1587128885000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 6,
- "categoryId": [
- "2"
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- }
- ],
- "gameId": "m4Rji6g4GZADN3VkiQyM",
- "GameStatus": "completed",
- "createdAt": 1587128854000,
- "turnAt": 1587128887000,
- "gameOverAt": 1587128888000,
- "reminder32Min": false,
- "reminder8Hr": false,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 0,
- "badge": [
- "rock",
- "lizard"
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 2
- }
- },
- "round": 6
- },
- {
- "gameOptions": {
- "categoryIds": [
- 2,
- 4,
- 7,
- 8,
- 9
- ],
- "friendId": "yP7sLu5TmYRUO9YT4tWrYLAqxSz1",
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "opponentType": 1,
- "playerMode": 1,
- "tags": [
- "java",
- "class",
- "base",
- "c",
- "milan",
- "test"
- ]
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "yP7sLu5TmYRUO9YT4tWrYLAqxSz1"
- ],
- "nextTurnPlayerId": "yP7sLu5TmYRUO9YT4tWrYLAqxSz1",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "NI7FD9qUB1BDFr1PL8sQ",
- "addedOn": 1585906806000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 2,
- "answerCorrect": false,
- "round": 1,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "rock",
- "won": false
- },
- "isReported": false
- }
- ],
- "gameId": "UUccLlvwsD7Ozgm7aY9Q",
- "GameStatus": "invitation timeout",
- "createdAt": 1585906805000,
- "turnAt": 1585906810000,
- "gameOverAt": 1586598658000,
- "reminder32Min": false,
- "reminder8Hr": true,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 2,
- "badge": [
-
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 0
- },
- "yP7sLu5TmYRUO9YT4tWrYLAqxSz1": {
- "avgAnsTime": 0,
- "badge": [
-
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 0
- }
- },
- "round": 1
- },
- {
- "gameOptions": {
- "categoryIds": [
- 1,
- 8,
- 2,
- 4,
- 7,
- 9
- ],
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "playerMode": 0,
- "rematch": true,
- "tags": [
-
- ]
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2"
- ],
- "nextTurnPlayerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "4woefFvfN4tjwy4d75ai",
- "addedOn": 1588682704000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 2,
- "answerCorrect": false,
- "round": 1,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "rock",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "Z8mHBiJFAKtbDjKaPMrr",
- "addedOn": 1588682713000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 4,
- "answerCorrect": false,
- "round": 2,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "rock",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "qrSZKsIk8MkoZlq0IRoe",
- "addedOn": 1588682725000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 5,
- "answerCorrect": true,
- "round": 3,
- "categoryId": [
- 8
- ],
- "badge": {
- "name": "lizard",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "0rJfn8pBBJtL2VmxZKoX",
- "addedOn": 1588682738000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 1,
- "answerCorrect": false,
- "round": 4,
- "categoryId": [
- 4
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "PoVMQ2E2aWulS8i3otoo",
- "addedOn": 1588682745000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 2,
- "answerCorrect": true,
- "round": 5,
- "categoryId": [
- 4
- ],
- "badge": {
- "name": "paper",
- "won": true
- },
- "isReported": false
- }
- ],
- "gameId": "DAojdtJcizXpgxvHwzAU",
- "GameStatus": "time expired",
- "createdAt": 1588682703000,
- "turnAt": 1588682750000,
- "gameOverAt": 1588798644000,
- "reminder32Min": true,
- "reminder8Hr": true,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 2,
- "badge": [
- "lizard",
- "paper"
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 2
- }
- },
- "round": 5
- },
- {
- "gameOptions": {
- "categoryIds": [
- 1,
- 8,
- 2,
- 4,
- 7,
- 9
- ],
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "opponentType": null,
- "playerMode": "0",
- "tags": [
- "java",
- "class",
- "base",
- "c",
- "milan",
- "test"
- ]
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2"
- ],
- "nextTurnPlayerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "GEeTTRCRNb3I0TaKRv18",
- "addedOn": 1588679169000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 0,
- "answerCorrect": true,
- "round": 1,
- "categoryId": [
- 4
- ],
- "badge": {
- "name": "paper",
- "won": true
- },
- "isReported": false
- }
- ],
- "gameId": "HqUyq0qaCJ5KA9qQatMx",
- "GameStatus": "time expired",
- "createdAt": 1588679168000,
- "turnAt": 1588679172000,
- "gameOverAt": 1588795044000,
- "reminder32Min": true,
- "reminder8Hr": true,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 0,
- "badge": [
- "paper"
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 1
- }
- },
- "round": 1
- },
- {
- "gameOptions": {
- "categoryIds": [
- 1,
- 8,
- 2,
- 4,
- 7,
- 9
- ],
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "playerMode": 0,
- "tags": [
-
- ]
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2"
- ],
- "nextTurnPlayerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "4rcbqMO7CuvdAjFOqxzJ",
- "addedOn": 1588682611000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 1,
- "answerCorrect": false,
- "round": 1,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "NkZ60EgiuYBsqt22B3pn",
- "addedOn": 1588682618000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 5,
- "answerCorrect": false,
- "round": 2,
- "categoryId": [
- 8
- ],
- "badge": {
- "name": "lizard",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "EtRkEUKfEV6ggsNeFKa6",
- "addedOn": 1588682638000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 4,
- "answerCorrect": true,
- "round": 3,
- "categoryId": [
- 4
- ],
- "badge": {
- "name": "paper",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "EEKCxEpDwMgNnvA8A3AF",
- "addedOn": 1588682651000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 2,
- "answerCorrect": true,
- "round": 4,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "rock",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "5VYHKNb6ID6bpXLb1Yvj",
- "addedOn": 1588682678000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 9,
- "answerCorrect": false,
- "round": 5,
- "categoryId": [
- 9
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "BXlrHtCVX1K8cktlL8BZ",
- "addedOn": 1588682693000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 4,
- "answerCorrect": false,
- "round": 6,
- "categoryId": [
- "8"
- ],
- "badge": {
- "name": "lizard",
- "won": false
- },
- "isReported": false
- }
- ],
- "gameId": "aEFryEhFppFLxmxXZ1Mh",
- "GameStatus": "completed",
- "createdAt": 1588682610000,
- "turnAt": 1588682699000,
- "gameOverAt": 1588682701000,
- "reminder32Min": false,
- "reminder8Hr": false,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 4,
- "badge": [
- "paper",
- "rock"
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 2
- }
- },
- "round": 6
- },
- {
- "gameOptions": {
- "categoryIds": [
- 1,
- 8,
- 2,
- 4,
- 7,
- 9
- ],
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "opponentType": null,
- "playerMode": "0",
- "tags": [
- "java",
- "class",
- "base",
- "c",
- "milan",
- "test"
- ]
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2"
- ],
- "nextTurnPlayerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "D84v6F668ABL3HPW7OA2",
- "addedOn": 1588223054000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 1,
- "categoryId": [
- 1
- ],
- "badge": {
- "name": "spoke",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "UMRsetdzrQ5iOJFdn1X7",
- "addedOn": 1588223059000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 0,
- "answerCorrect": true,
- "round": 2,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "rock",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "1v3zOKOs8B2xLyzPfT2P",
- "addedOn": 1588223067000,
- "playerAnswerId": null,
- "playerAnswerInSeconds": 16,
- "answerCorrect": false,
- "round": 3,
- "categoryId": [
- 9
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "9UnwPpseIpq4VeZ9p9v1",
- "addedOn": 1588223111000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 0,
- "answerCorrect": true,
- "round": 4,
- "categoryId": [
- 1
- ],
- "badge": {
- "name": "spoke",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "PyzJT210UrMwdImwgsRB",
- "addedOn": 1588223123000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 5,
- "categoryId": [
- 8
- ],
- "badge": {
- "name": "lizard",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "GMwmK5ckSoQuRXRpB0jb",
- "addedOn": 1588223127000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 1,
- "answerCorrect": false,
- "round": 6,
- "categoryId": [
- 4
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- }
- ],
- "gameId": "5rYHjQ78x1OGUJevy2cK",
- "GameStatus": "completed",
- "createdAt": 1588223053000,
- "turnAt": 1588223131000,
- "gameOverAt": 1588223132000,
- "reminder32Min": false,
- "reminder8Hr": false,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 2,
- "badge": [
- "rock",
- "spoke"
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 2
- }
- },
- "round": 6
- },
- {
- "gameOptions": {
- "categoryIds": [
- 1,
- 8,
- 2,
- 4,
- 7,
- 9
- ],
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "opponentType": null,
- "playerMode": "0",
- "tags": [
-
- ]
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2"
- ],
- "nextTurnPlayerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "9KFazD542SzJ3r82EghZ",
- "addedOn": 1587368865000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 0,
- "answerCorrect": true,
- "round": 1,
- "categoryId": [
- "1"
- ],
- "badge": {
- "name": "spoke",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "fTJys3cjkl2xKhYAnFeE",
- "addedOn": 1587368884000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 1,
- "answerCorrect": false,
- "round": 2,
- "categoryId": [
- "2"
- ],
- "badge": {
- "name": "paper",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "uX4QxAXokgu6rRbvZlIG",
- "addedOn": 1587368891000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 3,
- "categoryId": [
- "2"
- ],
- "badge": {
- "name": "rock",
- "won": false
- },
- "isReported": true
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "AMZvRYjcCLQoV3EbMY8A",
- "addedOn": 1587368902000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 4,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "Q1W3Z9Wi0wDCrMdE4NSb",
- "addedOn": 1587368909000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 5,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "paper",
- "won": false
- },
- "isReported": false
- }
- ],
- "gameId": "WDX3q3509ZVHcL1R1XS3",
- "GameStatus": "completed",
- "createdAt": 1587368863000,
- "turnAt": 1587368912000,
- "gameOverAt": 1587368913000,
- "reminder32Min": false,
- "reminder8Hr": false,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 0,
- "badge": [
- "spoke"
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 1
- }
- },
- "round": 5
- },
- {
- "gameOptions": {
- "categoryIds": [
- 1,
- 8,
- 2,
- 4,
- 7,
- 9
- ],
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "opponentType": null,
- "playerMode": "0",
- "tags": [
- "java",
- "class",
- "base",
- "c",
- "milan",
- "test"
- ]
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2"
- ],
- "nextTurnPlayerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "USxShnwfA65wkxs2X9rY",
- "addedOn": 1587128856000,
- "playerAnswerId": "2",
- "playerAnswerInSeconds": 0,
- "answerCorrect": true,
- "round": 1,
- "categoryId": [
- 4
- ],
- "badge": {
- "name": "rock",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "nL0R1frXsWNdElOhUmtF",
- "addedOn": 1587128863000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 2,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "Qc0wXfHttTdDbVtQpZ4a",
- "addedOn": 1587128868000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 3,
- "categoryId": [
- 8
- ],
- "badge": {
- "name": "lizard",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "BvK5KEmkOxl2cVi6f5Dz",
- "addedOn": 1587128873000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 4,
- "categoryId": [
- "8"
- ],
- "badge": {
- "name": "lizard",
- "won": false
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "BXlrHtCVX1K8cktlL8BZ",
- "addedOn": 1587128878000,
- "playerAnswerId": "3",
- "playerAnswerInSeconds": 0,
- "answerCorrect": true,
- "round": 5,
- "categoryId": [
- "8"
- ],
- "badge": {
- "name": "lizard",
- "won": true
- },
- "isReported": false
- },
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "8FLY1x6pefEPRbUOIKkp",
- "addedOn": 1587128885000,
- "playerAnswerId": "0",
- "playerAnswerInSeconds": 0,
- "answerCorrect": false,
- "round": 6,
- "categoryId": [
- "2"
- ],
- "badge": {
- "name": "scissors",
- "won": false
- },
- "isReported": false
- }
- ],
- "gameId": "m4Rji6g4GZADN3VkiQyM",
- "GameStatus": "completed",
- "createdAt": 1587128854000,
- "turnAt": 1587128887000,
- "gameOverAt": 1587128888000,
- "reminder32Min": false,
- "reminder8Hr": false,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 0,
- "badge": [
- "rock",
- "lizard"
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 2
- }
- },
- "round": 6
- },
- {
- "gameOptions": {
- "categoryIds": [
- 2,
- 4,
- 7,
- 8,
- 9
- ],
- "friendId": "yP7sLu5TmYRUO9YT4tWrYLAqxSz1",
- "gameMode": 0,
- "isBadgeWithCategory": true,
- "isChallenge": false,
- "maxQuestions": 8,
- "opponentType": 1,
- "playerMode": 1,
- "tags": [
- "java",
- "class",
- "base",
- "c",
- "milan",
- "test"
- ]
- },
- "playerIds": [
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "yP7sLu5TmYRUO9YT4tWrYLAqxSz1"
- ],
- "nextTurnPlayerId": "yP7sLu5TmYRUO9YT4tWrYLAqxSz1",
- "gameOver": true,
- "playerQnAs": [
- {
- "playerId": "4kFa6HRvP5OhvYXsH9mEsRrXj4o2",
- "questionId": "NI7FD9qUB1BDFr1PL8sQ",
- "addedOn": 1585906806000,
- "playerAnswerId": "1",
- "playerAnswerInSeconds": 2,
- "answerCorrect": false,
- "round": 1,
- "categoryId": [
- 2
- ],
- "badge": {
- "name": "rock",
- "won": false
- },
- "isReported": false
- }
- ],
- "gameId": "UUccLlvwsD7Ozgm7aY9Q",
- "GameStatus": "invitation timeout",
- "createdAt": 1585906805000,
- "turnAt": 1585906810000,
- "gameOverAt": 1586598658000,
- "reminder32Min": false,
- "reminder8Hr": true,
- "stats": {
- "4kFa6HRvP5OhvYXsH9mEsRrXj4o2": {
- "avgAnsTime": 2,
- "badge": [
-
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 0
- },
- "yP7sLu5TmYRUO9YT4tWrYLAqxSz1": {
- "avgAnsTime": 0,
- "badge": [
-
- ],
- "consecutiveCorrectAnswers": 0,
- "score": 0
- }
- },
- "round": 1
- }
- ],
- "applicationSettings": {
- "android_version": 79,
- "answer_max_length": 128,
- "apple_authentication": true,
- "auto_save": {
- "is_enabled": true,
- "time": 30000
- },
- "badges": {
- "lizard": {
- "category": 8,
- "class": "score5",
- "image": {
- "full_name": "badge5.png",
- "name": "badge5"
- }
- },
- "paper": {
- "category": 0,
- "class": "score2",
- "image": {
- "full_name": "badge2.png",
- "name": "badge2"
- }
- },
- "rock": {
- "category": 0,
- "class": "score1",
- "image": {
- "full_name": "badge1.png",
- "name": "badge1"
- }
- },
- "scissors": {
- "category": 0,
- "class": "score3",
- "image": {
- "full_name": "badge3.png",
- "name": "badge3"
- }
- },
- "spoke": {
- "category": 1,
- "class": "score4",
- "image": {
- "full_name": "badge4.png",
- "name": "badge4"
- }
- }
- },
- "default_names": [
- "HackMan",
- "FluxCapacitor",
- "PyCharmer",
- "NullPointer",
- "ContinuousIntegrator",
- "SeeSharper",
- "NothingBut.Net"
- ],
- "display_achievements": false,
- "earn_bytes_on_question_contribute": 4,
- "enabled_rich_editor": true,
- "first_question_bits": 50,
- "game_play_categories": [
- 9,
- 8,
- 4,
- 1,
- 6,
- 2,
- 3,
- 5,
- 7
- ],
- "game_play_max_time": [
- 8,
- 16,
- 32,
- 64,
- 128
- ],
- "game_play_show_tags": true,
- "game_play_timer_loader_ranges": [
- {
- "end": 256,
- "seconds": 16,
- "start": 0
- },
- {
- "end": 512,
- "seconds": 24,
- "start": 256
- },
- {
- "end": 10000000000000000,
- "seconds": 32,
- "start": 512
- }
- ],
- "game_question_bits": 50,
- "invite_bits": 4,
- "invite_bits_enabled": true,
- "ios_version": 74,
- "lives": {
- "enable": true,
- "lives_add": 2,
- "lives_after_add_millisecond": 1920000,
- "max_lives": 4
- },
- "notification_template": {
- "achievement_notification": {
- "message": "You get ${achievement} Achievement"
- },
- "friend_notifications": {
- "message": "${displayName} wants to friend you on bitWiser! Accept or Deny. Let the bitWiser battles begin!"
- },
- "game_completed": {
- "message": "${displayName} won this bitWiser game. Play again, to get even!"
- },
- "game_invitation_remaining_time_notifications_8_hr": {
- "message": "Your game play invitation from ${displayName} will expire in 8 hours. Accept the challenge and play now!"
- },
- "game_play_lag_notification": {
- "message": "${displayName} - we have added new questions to bitWiser! Come back and challenge your friends to a new game."
- },
- "game_remaining_time_notifications_32_mins": {
- "message": "You have only 32 minutes left to be a bitWiser! Play now!"
- },
- "game_remaining_time_notifications_8_hr": {
- "message": "Your bitWiser game will expire in 8 hours, play now!"
- },
- "invitation_timeout": {
- "message": "Your game play invitation to ${displayName} expired. Challenge your friends to a new game!"
- },
- "new_gmae_start_with_opponent": {
- "message": "${displayName} started a new bitWiser game with you! Stay tuned for your turn!"
- },
- "question_notifications_approved": {
- "message": "Yay! Your submitted question has been approved for the bitWiser question bank. You earned 8 bytes!!"
- },
- "question_notifications_status_change": {
- "message": "The status changed from ${oldStatus} to ${newStatus} for your question."
- },
- "time_expired_notification_game_lost": {
- "message": "You snooze you lose! sorry, your bitWiser game ended. Take another shot now!"
- },
- "time_expired_notification_game_won": {
- "message": "${displayName} did not answer in time. You have won this bitWiser game! You are on a roll, start another game."
- },
- "turn_change_notification_current_player": {
- "message": "${displayName}’s turn to play bitWiser."
- },
- "turn_change_on_wrong_answer": {
- "message": "${displayName} did not answer correctly. It's your turn now!!"
- },
- "turn_change_user_not_answered_notification_to_next_player": {
- "message": "${displayName} did not answer in time. It’s your turn to play and win bitWiser!"
- },
- "waiting_for_friend_invitation_acceptance": {
- "message": "${displayName} has invited you to a new game. It's your turn to play!"
- },
- "waiting_for_random_player_invitation_acceptance": {
- "message": "${displayName} has invited you to a new game. It's your turn to play!"
- }
- },
- "phone_authentication": true,
- "question_max_length": 256,
- "quill_options": {
- "custom_toolbar_position": "bottom",
- "list": [
- {
- "list": "bullet"
- },
- {
- "list": "ordered"
- }
- ],
- "options": [
- "bold",
- "italic",
- "underline",
- "strike",
- "mathEditor",
- "image",
- "code-block"
- ],
- "web_view_answer_options": {
- "ql-code-block": ""
- },
- "web_view_question_options": {
- "ql-code-block": "",
- "ql-image": ""
- }
- },
- "show_welcome_screen": true,
- "social_profile": [
- {
- "display": "Github",
- "enable": false,
- "position": 0,
- "social_name": "githubUrl",
- "url": "https://www.github.com/"
- },
- {
- "display": "Stack Overflow",
- "enable": true,
- "position": 1,
- "social_name": "stackoverflowUrl",
- "url": "https://www.stackoverflow.com/users/"
- },
- {
- "display": "Hacker News",
- "enable": true,
- "position": 2,
- "social_name": "hackernewsUrl",
- "url": "https://thehackernews.com/"
- },
- {
- "display": "Reddit",
- "enable": true,
- "position": 3,
- "social_name": "redditUrl",
- "url": "https://www.reddit.com/user/"
- },
- {
- "display": "LinkedIn",
- "enable": true,
- "position": 4,
- "social_name": "linkedInUrl",
- "url": "https://www.linkedin.com/in/"
- },
- {
- "display": "Twitter",
- "enable": true,
- "position": 5,
- "social_name": "twitterUrl",
- "url": "https://www.twitter.com/"
- }
- ],
- "tag_count_limit": 10,
- "tokens": {
- "earn_bits": 4,
- "earn_bytes": 2,
- "enable": true
- },
- "user_display_name_value": 1282
- }
-}
diff --git a/projects/trivia/src/app/dashboard/component/game-card/game-card.component.spec.ts b/projects/trivia/src/app/dashboard/component/game-card/game-card.component.spec.ts
index dd10ee9a6..b385a5b15 100644
--- a/projects/trivia/src/app/dashboard/component/game-card/game-card.component.spec.ts
+++ b/projects/trivia/src/app/dashboard/component/game-card/game-card.component.spec.ts
@@ -6,7 +6,7 @@ import { provideMockStore, MockStore } from '@ngrx/store/testing';
import { Utils } from 'shared-library/core/services';
import { User, Game, PlayerMode, GameStatus } from 'shared-library/shared/model';
import { AppState, appState } from '../../../store';
-import { TEST_DATA } from 'shared-library/testing/test.data';
+import { UserList, Games, ApplicationSettings, CategoryDictionary } from '../../../../../../../test/data';
import { CoreState } from 'shared-library/core/store';
import { MatSnackBarModule } from '@angular/material';
@@ -17,7 +17,7 @@ describe('GameCardComponent', () => {
let spy: any;
let user: User;
let mockStore: MockStore;
-
+
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [GameCardComponent],
@@ -54,7 +54,7 @@ describe('GameCardComponent', () => {
component = fixture.debugElement.componentInstance;
- const dbModel = TEST_DATA.game[0];
+ const dbModel = Games[0];
component.game = Game.getViewModel(dbModel);
});
@@ -66,17 +66,17 @@ describe('GameCardComponent', () => {
it(' updateRemainingTime function should be called from ngOnInit when it is user\'s turn', () => {
component.updateRemainingTime = jest.fn();
component.isHidePlayNow = false;
- component.applicationSettings = TEST_DATA.applicationSettings;
+ component.applicationSettings = ApplicationSettings;
- component.categoryDict = TEST_DATA.categoryDictionary;
- user = { ...TEST_DATA.userList[0] };
+ component.categoryDict = CategoryDictionary;
+ user = { ...UserList[0] };
mockStore.overrideSelector>(appState.coreState, {
user: user
});
mockStore.refreshState();
component.PlayerMode = PlayerMode;
component.gameStatus = GameStatus;
- const otherUser = { ...TEST_DATA.userList[1] };
+ const otherUser = { ...UserList[1] };
component.otherUserId = 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1';
component.userDict = {'4kFa6HRvP5OhvYXsH9mEsRrXj4o2': user, 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1': otherUser};
fixture.detectChanges();
@@ -86,19 +86,19 @@ describe('GameCardComponent', () => {
it(' capitalizeFirstLetter should be called for all categoryId data from game options', () => {
component.capitalizeFirstLetter = jest.fn();
- component.applicationSettings = TEST_DATA.applicationSettings;
- component.categoryDict = TEST_DATA.categoryDictionary;
- component.user = { ...TEST_DATA.userList[0] };
+ component.applicationSettings = ApplicationSettings;
+ component.categoryDict = CategoryDictionary;
+ component.user = { ...UserList[0] };
component.PlayerMode = PlayerMode;
component.gameStatus = GameStatus;
- const otherUser = { ...TEST_DATA.userList[1] };
+ const otherUser = { ...UserList[1] };
component.otherUserId = 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1';
component.userDict = {'4kFa6HRvP5OhvYXsH9mEsRrXj4o2': user, 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1': otherUser};
component.ngOnChanges({
applicationSettings :
{
previousValue: undefined,
- currentValue: TEST_DATA.applicationSettings,
+ currentValue: ApplicationSettings,
firstChange: true,
isFirstChange: undefined
}
@@ -107,15 +107,15 @@ describe('GameCardComponent', () => {
});
it('verify that Other Player information should be set with game data', () => {
- component.applicationSettings = TEST_DATA.applicationSettings;
- component.user = { ...TEST_DATA.userList[0] };
- const otherUser = { ...TEST_DATA.userList[1] };
+ component.applicationSettings = ApplicationSettings;
+ component.user = { ...UserList[0] };
+ const otherUser = { ...UserList[1] };
component.userDict = {'4kFa6HRvP5OhvYXsH9mEsRrXj4o2': user, 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1': otherUser};
component.ngOnChanges({
applicationSettings :
{
previousValue: undefined,
- currentValue: TEST_DATA.applicationSettings,
+ currentValue: ApplicationSettings,
firstChange: true,
isFirstChange: undefined
}
@@ -125,11 +125,11 @@ describe('GameCardComponent', () => {
});
it('Verify that Earned badges should be set with Game data', () => {
- component.applicationSettings = TEST_DATA.applicationSettings;
- component.user = { ...TEST_DATA.userList[0] };
- const otherUser = { ...TEST_DATA.userList[1] };
+ component.applicationSettings = ApplicationSettings;
+ component.user = { ...UserList[0] };
+ const otherUser = { ...UserList[1] };
component.userDict = {'4kFa6HRvP5OhvYXsH9mEsRrXj4o2': user, 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1': otherUser};
- const dbModel = TEST_DATA.game[1];
+ const dbModel = Games[1];
component.game = Game.getViewModel(dbModel);
const game = Game.getViewModel(dbModel);
const currentUserEarnedBadges = [...game.stats[component.user.userId].badge].reverse();
@@ -150,13 +150,13 @@ describe('GameCardComponent', () => {
it('should match snapshot', () => {
component.isHidePlayNow = false;
- component.applicationSettings = TEST_DATA.applicationSettings;
+ component.applicationSettings = ApplicationSettings;
- component.categoryDict = TEST_DATA.categoryDictionary;
- component.user = TEST_DATA.userList[0];
+ component.categoryDict = CategoryDictionary;
+ component.user = UserList[0];
component.PlayerMode = PlayerMode;
component.gameStatus = GameStatus;
- const otherUser = { ...TEST_DATA.userList[1] };
+ const otherUser = { ...UserList[1] };
component.otherUserId = 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1';
component.userDict = {'4kFa6HRvP5OhvYXsH9mEsRrXj4o2': user, 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1': otherUser};
component.ngOnInit();
@@ -175,7 +175,7 @@ describe('GameCardComponent', () => {
});
it('User should be set when user is logged in', () => {
- user = { ...TEST_DATA.userList[0] };
+ user = { ...UserList[0] };
mockStore.overrideSelector>(appState.coreState, {
user: user
});
@@ -184,8 +184,8 @@ describe('GameCardComponent', () => {
});
it('User dictionary should be set when values are emitted', () => {
- user = { ...TEST_DATA.userList[0] };
- const otherUser = { ...TEST_DATA.userList[1] };
+ user = { ...UserList[0] };
+ const otherUser = { ...UserList[1] };
const userDict = {'4kFa6HRvP5OhvYXsH9mEsRrXj4o2': user, 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1': otherUser};
mockStore.overrideSelector>(appState.coreState, {
userDict: userDict
@@ -198,13 +198,13 @@ describe('GameCardComponent', () => {
it('remaining time should be 2 hr 30 min', (async () => {
component.isHidePlayNow = false;
- component.applicationSettings = TEST_DATA.applicationSettings;
+ component.applicationSettings = ApplicationSettings;
- component.categoryDict = TEST_DATA.categoryDictionary;
- component.user = TEST_DATA.userList[0];
+ component.categoryDict = CategoryDictionary;
+ component.user = UserList[0];
component.PlayerMode = PlayerMode;
component.gameStatus = GameStatus;
- const otherUser = { ...TEST_DATA.userList[1] };
+ const otherUser = { ...UserList[1] };
component.otherUserId = 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1';
component.userDict = {'4kFa6HRvP5OhvYXsH9mEsRrXj4o2': user, 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1': otherUser};
component.updateRemainingTime();
@@ -217,14 +217,14 @@ describe('GameCardComponent', () => {
it('remaining time should be 0 hr 0 min', (async () => {
component.isHidePlayNow = false;
- component.applicationSettings = TEST_DATA.applicationSettings;
- const dbModel = TEST_DATA.game[1];
+ component.applicationSettings = ApplicationSettings;
+ const dbModel = Games[1];
component.game = Game.getViewModel(dbModel);
- component.categoryDict = TEST_DATA.categoryDictionary;
- component.user = TEST_DATA.userList[0];
+ component.categoryDict = CategoryDictionary;
+ component.user = UserList[0];
component.PlayerMode = PlayerMode;
component.gameStatus = GameStatus;
- const otherUser = { ...TEST_DATA.userList[1] };
+ const otherUser = { ...UserList[1] };
component.otherUserId = 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1';
component.userDict = {'4kFa6HRvP5OhvYXsH9mEsRrXj4o2': user, 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1': otherUser};
component.updateRemainingTime();
diff --git a/projects/trivia/src/app/dashboard/component/newsletter/newsletter.component.spec.ts b/projects/trivia/src/app/dashboard/component/newsletter/newsletter.component.spec.ts
index 51f088db9..8f65538d4 100644
--- a/projects/trivia/src/app/dashboard/component/newsletter/newsletter.component.spec.ts
+++ b/projects/trivia/src/app/dashboard/component/newsletter/newsletter.component.spec.ts
@@ -8,7 +8,7 @@ import { provideMockStore, MockStore } from '@ngrx/store/testing';
import { CoreState } from 'shared-library/core/store';
import { DashboardState } from '../../store';
import * as dashboardActions from '../../store/actions';
-import { TEST_DATA } from 'shared-library/testing/test.data';
+import { UserList } from 'test-data/data';
describe('Testing Newsletter Component', () => {
@@ -57,7 +57,7 @@ describe('Testing Newsletter Component', () => {
afterEach(() => { fixture.destroy(); });
it('Form should have Email set for logged in user', () => {
- const user = TEST_DATA.userList[2];
+ const user = UserList[2];
mockCoreSelector.setResult({ user });
mockStore.refreshState();
expect(component.subscriptionForm.get('email').value).toEqual(user.email);
@@ -65,7 +65,7 @@ describe('Testing Newsletter Component', () => {
});
it('Form should be valid for logged in user', () => {
- const user = TEST_DATA.userList[2];
+ const user = UserList[2];
mockCoreSelector.setResult({ user });
mockStore.refreshState();
expect(component.subscriptionForm.valid).toBeTruthy();
@@ -144,7 +144,7 @@ describe('Testing Newsletter Component', () => {
});
it('on subscribe should dispatch action to add subscriber with correct payload when user is logged in', () => {
- const user = TEST_DATA.userList[2];
+ const user = UserList[2];
const subscription = new Subscription();
subscription.email = user.email;
subscription.userId = user.userId;
diff --git a/projects/trivia/src/app/testing/test.data.ts b/projects/trivia/src/app/testing/test.data.ts
deleted file mode 100644
index cb67e822d..000000000
--- a/projects/trivia/src/app/testing/test.data.ts
+++ /dev/null
@@ -1,436 +0,0 @@
-export const TEST_DATA = {
- "categories": [
- { "id": 1, "categoryName": "Special" },
- { "id": 2, "categoryName": "Programming" },
- { "id": 3, "categoryName": "Architecture" },
- { "id": 4, "categoryName": "Networking/Infrastructure" },
- { "id": 5, "categoryName": "Database" },
- { "id": 6, "categoryName": "Dev Ops" },
- { "id": 7, "categoryName": "UX/UI" }
- ],
- "categoryDictionary": {
- [1]: { "id": 1, "categoryName": "Special" },
- [2]: { "id": 2, "categoryName": "Programming" },
- [3]: { "id": 3, "categoryName": "Architecture" },
- [4]: { "id": 4, "categoryName": "Networking/Infrastructure" },
- [5]: { "id": 5, "categoryName": "Database" },
- [6]: { "id": 6, "categoryName": "Dev Ops" },
- [7]: { "id": 7, "categoryName": "UX/UI" }
- },
- "tagList": [
- "C#",
- "iOS",
- "Objective-C",
- "Swift",
- "Mobile",
- "Cloud",
- "AWS",
- "Azure",
- "Open Source",
- "NoSql",
- "SQL",
- "SQL Server",
- "MongoDB",
- "CI",
- "Selenium",
- "Agile",
- "Scrum",
- "Waterfall",
- "SDLC",
- "BI",
- "IoT",
- "Social",
- "Windows",
- "iPhone",
- "Analytics",
- "Data",
- "UX",
- "UI",
- "Python",
- "VB",
- ".Net",
- "ASP.Net",
- "Unity",
- "DI",
- "EF",
- "ORM",
- "Spring",
- "Hibernate",
- "Oracle",
- "DB2",
- "Java",
- "Ruby",
- "Rails",
- "MySQL",
- "Postgres",
- "Enterprise",
- "Active Directory",
- "C",
- "C++",
- "REST",
- "API",
- "SDK",
- "SharePoint",
- "CRM",
- "Dynamics CRM",
- "Salesforce",
- "JavaScript",
- "AngularJS",
- "MVC",
- "MVP",
- "MVVM",
- "View",
- "Controller",
- "Model",
- "Cassandra",
- "DocumentDB",
- "ColumnDB",
- "Elastic Search",
- "Neo4J",
- "GraphDB",
- "KeyValue",
- "Hadoop",
- "HBase",
- "Pig",
- "Hive",
- "Zookeeper",
- "Linux",
- "Mac OS",
- "Motherboard",
- "Apache",
- "Cordova",
- "SPA",
- "PhoneGap",
- "Universal Apps",
- "Xamarin",
- "Eclipse",
- "PHP",
- "T-SQL",
- "Stored Procedure",
- "Trigger",
- "NTFS",
- "Journaled",
- "BootCamp",
- "Office 365",
- "POP",
- "IMAP",
- "SMTP",
- "TCP/IP",
- "IP Address",
- "Domain Controller",
- "DNS",
- "DHCP",
- "SATA",
- "USB",
- "HDMI",
- "Firewire",
- "Lightening",
- "Edison",
- "Galileo",
- "Arduino",
- "Rasberry Pi",
- "TypeScript",
- "CoffeeScript",
- "jQuery",
- "3D Printer",
- "CAD",
- "Photoshop",
- "Illustrator",
- "jpg",
- "png",
- "Partition",
- "Unix",
- "kernel",
- "SOAP",
- "Authentication",
- "OAuth",
- "OpenID",
- "BitCoin",
- "ASP",
- "Mainframe",
- "Storyboard",
- "XCode",
- "AirDrop",
- "Bluetooth",
- "BLE",
- "ApplePay",
- "App Store",
- "Metal",
- "Pattern",
- "Distributed",
- "GIT"
- ],
- "questions": {
- "published": [
- {
- "id": "1",
- "questionText": "Which of the following function of Array object reverses the order of the elements of an array?",
- "answers": [
- {
- "id": 1,
- "answerText": "reverse()",
- "correct": true
- },
- {
- "id": 2,
- "answerText": "push()",
- "correct": false
- },
- {
- "id": 3,
- "answerText": "reduce()",
- "correct": false
- },
- {
- "id": 4,
- "answerText": "reduceRight()",
- "correct": false
- }
- ],
- "ordered": false,
- "tags": ["JavaScript", "front-end", "ES5"],
- "categoryIds": [2]
- },
- {
- "id": "2",
- "questionText": "Which of the following function of Array object calls a function for each element in the array?",
- "answers": [
- {
- "id": 1,
- "answerText": "concat()",
- "correct": false
- },
- {
- "id": 2,
- "answerText": "every()",
- "correct": false
- },
- {
- "id": 3,
- "answerText": "filter()",
- "correct": false
- },
- {
- "id": 4,
- "answerText": "forEach()",
- "correct": true
- }
- ],
- "ordered": false,
- "tags": ["JavaScript", "front-end"],
- "categoryIds": [2]
- },
- {
- "id": "3",
- "questionText": "Which of the following function of String object returns the index within the calling String object of the first occurrence of the specified value?",
- "answers": [
- {
- "id": 1,
- "answerText": "firstIndexOf()",
- "correct": false
- },
- {
- "id": 2,
- "answerText": "lastIndexOf()",
- "correct": false
- },
- {
- "id": 3,
- "answerText": "indexOf()",
- "correct": true
- },
- {
- "id": 4,
- "answerText": "search()",
- "correct": false
- }
- ],
- "ordered": false,
- "tags": ["JavaScript"],
- "categoryIds": [2]
- },
- {
- "id": "4",
- "questionText": "Which of the following function of Boolean object returns a string containing the source of the Boolean object?",
- "answers": [
- {
- "id": 1,
- "answerText": "valueOf()",
- "correct": false
- },
- {
- "id": 2,
- "answerText": "toSource()",
- "correct": true
- },
- {
- "id": 3,
- "answerText": "indexOf()",
- "correct": false
- },
- {
- "id": 4,
- "answerText": "toString()",
- "correct": false
- }
- ],
- "ordered": false,
- "tags": ["JavaScript"],
- "categoryIds": [2]
- },
- {
- "id": "5",
- "questionText": "Which of the following is true about cookie handling in JavaScript?",
- "answers": [
- {
- "id": 1,
- "answerText": "JavaScript can manipulate cookies using the cookie property of the Document object.",
- "correct": false
- },
- {
- "id": 2,
- "answerText": "JavaScript can read, create, modify, and delete the cookie or cookies that apply to the current web page.",
- "correct": false
- },
- {
- "id": 3,
- "answerText": "All of the above.",
- "correct": true
- },
- {
- "id": 4,
- "answerText": "None of the above.",
- "correct": false
- }
- ],
- "ordered": true,
- "tags": ["JavaScript", "ES5"],
- "categoryIds": [2]
- },
- {
- "id": "6",
- "questionText": "What's the best Trivia game?",
- "answers": [
- {
- "id": 1,
- "answerText": "Quiz Up",
- "correct": false
- },
- {
- "id": 2,
- "answerText": "Trivia Crack",
- "correct": false
- },
- {
- "id": 3,
- "answerText": "The one I'm playing",
- "correct": true
- },
- {
- "id": 4,
- "answerText": "It's subjective",
- "correct": false
- }
- ],
- "ordered": false,
- "tags": ["gaming"],
- "categoryIds": [1]
- }
- ],
- "unpublished": []
- },
- "userList": [
- {
- "userId": "ssHmHkKq9BPByP9c4CtmEqvO4xp2",
- "displayName": "trivia",
- "email": "trivia@realworldfullstack.io",
- "roles": {},
- "authState": null,
- "bulkUploadPermissionStatusUpdateTime":null,
- "bulkUploadPermissionStatus":null,
- "croppedImageUrl":null,
- "gamePlayed":null,
- "originalImageUrl":null,
- "imageType":null
-
- }
- ],
-
- "userDict": {
- 'ssHmHkKq9BPByP9c4CtmEqvO4xp2': {
- "userId": "ssHmHkKq9BPByP9c4CtmEqvO4xp2",
- "displayName": "trivia",
- "email": "trivia@realworldfullstack.io",
- "roles": {},
- "authState": null
- }
- },
-
- "leaderBoard": {
- "1": [
- { "score": 123, "userId": "ssHmHkKq9BPByP9c4CtmEqvO4xp2" },
- { "score": 406, "userId": "ssHmHkKq9BPByo9c4CtmEqvO4xp2" },
- { "score": 10, "userId": "ssHmHkKq9BPSyP9c4CtmEqvO4xp2" },
- { "score": 80, "userId": "ssHmHkKq9BPSyP9c4CtmEqvO4xp2" },
- { "score": 100, "userId": "ssHmHkKq9BPPyP9c4CtmEqvO4xp2" },
- { "score": 102, "userId": "ssHmHkKq9BPYyP9c4CtmEqvO4xp2" },
- { "score": 109, "userId": "ssHmHkKq9BPOyP9c4CtmEqvO4xp2" },
- { "score": 105, "userId": "ssHmHkKq9BPLyP9c4CtmEqvO4xp2" },
- { "score": 1000, "userId": "ssHmHkKq9BPRyP9c4CtmEqvO4xp2" },
- { "score": 50, "userId": "ssHmHkKq9BPTyP9c4CtmEqvO4xp2" }
- ],
- "2": [
- { "score": 100, "userId": "ssHmHkKq9BPByP9c4CtmEqvO4xp2" },
- { "score": 40, "userId": "ssHmHkKq9BPByo9c4CtmEqvO4xp2" },
- { "score": 54, "userId": "ssHmHkKq9BPSyP9c4CtmEqvO4xp2" },
- { "score": 100, "userId": "ssHmHkKq9BPPyP9c4CtmEqvO4xp2" },
- { "score": 102, "userId": "ssHmHkKq9BPYyP9c4CtmEqvO4xp2" },
- { "score": 109, "userId": "ssHmHkKq9BPOyP9c4CtmEqvO4xp2" },
- { "score": 105, "userId": "ssHmHkKq9BPLyP9c4CtmEqvO4xp2" },
- { "score": 1000, "userId": "ssHmHkKq9BPRyP9c4CtmEqvO4xp2" },
- { "score": 50, "userId": "ssHmHkKq9BPTyP9c4CtmEqvO4xp2" },
- { "score": 50, "userId": "ssHmHkKq9BPTyP9c4CtmEqvO4xp2" }],
- "3": [
- { "score": 5, "userId": "ssHmHkKq9BPByP9c4CtmEqvO4xp2" },
- { "score": 80, "userId": "ssHmHkKq9BPByo9c4CtmEqvO4xp2" },
- { "score": 500, "userId": "ssHmHkKq9BPSyP9c4CtmEqvO4xp2" },
- { "score": 100, "userId": "ssHmHkKq9BPPyP9c4CtmEqvO4xp2" },
- { "score": 102, "userId": "ssHmHkKq9BPYyP9c4CtmEqvO4xp2" },
- { "score": 109, "userId": "ssHmHkKq9BPOyP9c4CtmEqvO4xp2" },
- { "score": 105, "userId": "ssHmHkKq9BPLyP9c4CtmEqvO4xp2" },
- { "score": 1000, "userId": "ssHmHkKq9BPRyP9c4CtmEqvO4xp2" },
- { "score": 50, "userId": "ssHmHkKq9BPTyP9c4CtmEqvO4xp2" },
- { "score": 50, "userId": "ssHmHkKq9BPTyP9c4CtmEqvO4xp2" }
- ]
- },
- blog: [{
- 'author': 'Akshay Nihalaney',
- 'blogNo': 0,
- 'categories': [
- "angular",
- "jasmine",
- "jest",
- "testing",
- "protractor"],
- 'commentCount': 5,
- 'content': 'test',
- 'guid': 'https://medium.com/p/6a0e03a89038',
- 'id': 1532279340000,
- 'link': 'https://blog.realworldfullstack.io/real-world-app-part-22-angular-testing-with-protractor-jasmine-and-jest-6a0e03a89038?source=rss----5fcb8756dcc3---4',
- 'pubDate': "2018-07-22 17:09:00",
- 'share_status': false,
- 'subtitle': "End to end testing with Protractor and unit tests with Jest",
- 'thumbnail': "https://cdn-images-1.medium.com/max/1024/1*VAuIh4dq6BxKDL8yXmGMTw.jpeg",
- 'title': "Real World App - Part 22: Angular Testing with Protractor, Jasmine and Jest",
- 'viewCount': 100,
- 'created_uuid': 'ssHmHkKq9BPByP9c4CtmEqvO4xp2'
- }
- ],
- realTimeStats:
- {
- 'active_games': 2,
- 'game_played': 2518,
- 'total_questions': 106,
- 'total_users': 67
- }
-}
diff --git a/projects/trivia/tsconfig.spec.json b/projects/trivia/tsconfig.spec.json
index df46f0d8b..e23c99826 100644
--- a/projects/trivia/tsconfig.spec.json
+++ b/projects/trivia/tsconfig.spec.json
@@ -16,7 +16,8 @@
"paths": {
"shared-library/*": [
"../../projects/shared-library/src/lib/*"
- ]
+ ],
+ "test-data/*": ["../../../test/*"]
},
"outDir": "../out-tsc/spec",
"module": "commonjs",
@@ -34,7 +35,8 @@
],
"include": [
"**/*.spec.ts",
- "**/*.d.ts"
+ "**/*.d.ts",
+ "./../../test/data/*.ts"
],
"exclude": [
"node_modules",
diff --git a/test/data/application-settings.ts b/test/data/application-settings.ts
new file mode 100644
index 000000000..8159cf960
--- /dev/null
+++ b/test/data/application-settings.ts
@@ -0,0 +1,247 @@
+export const ApplicationSettings = {
+ 'android_version': 79,
+ 'answer_max_length': 128,
+ 'apple_authentication': true,
+ 'auto_save': {
+ 'is_enabled': true,
+ 'time': 30000
+ },
+ 'badges': {
+ 'lizard': {
+ 'category': 8,
+ 'class': 'score5',
+ 'image': {
+ 'full_name': 'badge5.png',
+ 'name': 'badge5'
+ }
+ },
+ 'paper': {
+ 'category': 0,
+ 'class': 'score2',
+ 'image': {
+ 'full_name': 'badge2.png',
+ 'name': 'badge2'
+ }
+ },
+ 'rock': {
+ 'category': 0,
+ 'class': 'score1',
+ 'image': {
+ 'full_name': 'badge1.png',
+ 'name': 'badge1'
+ }
+ },
+ 'scissors': {
+ 'category': 0,
+ 'class': 'score3',
+ 'image': {
+ 'full_name': 'badge3.png',
+ 'name': 'badge3'
+ }
+ },
+ 'spoke': {
+ 'category': 1,
+ 'class': 'score4',
+ 'image': {
+ 'full_name': 'badge4.png',
+ 'name': 'badge4'
+ }
+ }
+ },
+ 'default_names': [
+ 'HackMan',
+ 'FluxCapacitor',
+ 'PyCharmer',
+ 'NullPointer',
+ 'ContinuousIntegrator',
+ 'SeeSharper',
+ 'NothingBut.Net'
+ ],
+ 'display_achievements': false,
+ 'earn_bytes_on_question_contribute': 4,
+ 'enabled_rich_editor': true,
+ 'first_question_bits': 50,
+ 'game_play_categories': [
+ 9,
+ 8,
+ 4,
+ 1,
+ 6,
+ 2,
+ 3,
+ 5,
+ 7
+ ],
+ 'game_play_max_time': [
+ 8,
+ 16,
+ 32,
+ 64,
+ 128
+ ],
+ 'game_play_show_tags': true,
+ 'game_play_timer_loader_ranges': [
+ {
+ 'end': 256,
+ 'seconds': 16,
+ 'start': 0
+ },
+ {
+ 'end': 512,
+ 'seconds': 24,
+ 'start': 256
+ },
+ {
+ 'end': 10000000000000000,
+ 'seconds': 32,
+ 'start': 512
+ }
+ ],
+ 'game_question_bits': 50,
+ 'invite_bits': 4,
+ 'invite_bits_enabled': true,
+ 'ios_version': 74,
+ 'lives': {
+ 'enable': true,
+ 'lives_add': 2,
+ 'lives_after_add_millisecond': 1920000,
+ 'max_lives': 4
+ },
+ 'notification_template': {
+ 'achievement_notification': {
+ 'message': 'You get ${achievement} Achievement'
+ },
+ 'friend_notifications': {
+ 'message': '${displayName} wants to friend you on bitWiser! Accept or Deny. Let the bitWiser battles begin!'
+ },
+ 'game_completed': {
+ 'message': '${displayName} won this bitWiser game. Play again, to get even!'
+ },
+ 'game_invitation_remaining_time_notifications_8_hr': {
+ 'message': 'Your game play invitation from ${displayName} will expire in 8 hours. Accept the challenge and play now!'
+ },
+ 'game_play_lag_notification': {
+ 'message': '${displayName} - we have added new questions to bitWiser! Come back and challenge your friends to a new game.'
+ },
+ 'game_remaining_time_notifications_32_mins': {
+ 'message': 'You have only 32 minutes left to be a bitWiser! Play now!'
+ },
+ 'game_remaining_time_notifications_8_hr': {
+ 'message': 'Your bitWiser game will expire in 8 hours, play now!'
+ },
+ 'invitation_timeout': {
+ 'message': 'Your game play invitation to ${displayName} expired. Challenge your friends to a new game!'
+ },
+ 'new_gmae_start_with_opponent': {
+ 'message': '${displayName} started a new bitWiser game with you! Stay tuned for your turn!'
+ },
+ 'question_notifications_approved': {
+ 'message': 'Yay! Your submitted question has been approved for the bitWiser question bank. You earned 8 bytes!!'
+ },
+ 'question_notifications_status_change': {
+ 'message': 'The status changed from ${oldStatus} to ${newStatus} for your question.'
+ },
+ 'time_expired_notification_game_lost': {
+ 'message': 'You snooze you lose! sorry, your bitWiser game ended. Take another shot now!'
+ },
+ 'time_expired_notification_game_won': {
+ 'message': '${displayName} did not answer in time. You have won this bitWiser game! You are on a roll, start another game.'
+ },
+ 'turn_change_notification_current_player': {
+ 'message': '${displayName}’s turn to play bitWiser.'
+ },
+ 'turn_change_on_wrong_answer': {
+ 'message': '${displayName} did not answer correctly. It\'s your turn now!!'
+ },
+ 'turn_change_user_not_answered_notification_to_next_player': {
+ 'message': '${displayName} did not answer in time. It’s your turn to play and win bitWiser!'
+ },
+ 'waiting_for_friend_invitation_acceptance': {
+ 'message': '${displayName} has invited you to a new game. It\'s your turn to play!'
+ },
+ 'waiting_for_random_player_invitation_acceptance': {
+ 'message': '${displayName} has invited you to a new game. It\'s your turn to play!'
+ }
+ },
+ 'phone_authentication': true,
+ 'question_max_length': 256,
+ 'quill_options': {
+ 'custom_toolbar_position': 'bottom',
+ 'list': [
+ {
+ 'list': 'bullet'
+ },
+ {
+ 'list': 'ordered'
+ }
+ ],
+ 'options': [
+ 'bold',
+ 'italic',
+ 'underline',
+ 'strike',
+ 'mathEditor',
+ 'image',
+ 'code-block'
+ ],
+ 'web_view_answer_options': {
+ 'ql-code-block': ''
+ },
+ 'web_view_question_options': {
+ 'ql-code-block': '',
+ 'ql-image': ''
+ }
+ },
+ 'show_welcome_screen': true,
+ 'social_profile': [
+ {
+ 'display': 'Github',
+ 'enable': false,
+ 'position': 0,
+ 'social_name': 'githubUrl',
+ 'url': 'https://www.github.com/'
+ },
+ {
+ 'display': 'Stack Overflow',
+ 'enable': true,
+ 'position': 1,
+ 'social_name': 'stackoverflowUrl',
+ 'url': 'https://www.stackoverflow.com/users/'
+ },
+ {
+ 'display': 'Hacker News',
+ 'enable': true,
+ 'position': 2,
+ 'social_name': 'hackernewsUrl',
+ 'url': 'https://thehackernews.com/'
+ },
+ {
+ 'display': 'Reddit',
+ 'enable': true,
+ 'position': 3,
+ 'social_name': 'redditUrl',
+ 'url': 'https://www.reddit.com/user/'
+ },
+ {
+ 'display': 'LinkedIn',
+ 'enable': true,
+ 'position': 4,
+ 'social_name': 'linkedInUrl',
+ 'url': 'https://www.linkedin.com/in/'
+ },
+ {
+ 'display': 'Twitter',
+ 'enable': true,
+ 'position': 5,
+ 'social_name': 'twitterUrl',
+ 'url': 'https://www.twitter.com/'
+ }
+ ],
+ 'tag_count_limit': 10,
+ 'tokens': {
+ 'earn_bits': 4,
+ 'earn_bytes': 2,
+ 'enable': true
+ },
+ 'user_display_name_value': 1282
+};
diff --git a/test/data/blogs.ts b/test/data/blogs.ts
new file mode 100644
index 000000000..52c0d1fc8
--- /dev/null
+++ b/test/data/blogs.ts
@@ -0,0 +1,23 @@
+export const Blogs = [{
+ 'author': 'Akshay Nihalaney',
+ 'blogNo': 0,
+ 'categories': [
+ "angular",
+ "jasmine",
+ "jest",
+ "testing",
+ "protractor"],
+ 'commentCount': 5,
+ 'content': 'test',
+ 'guid': 'https://medium.com/p/6a0e03a89038',
+ 'id': 1532279340000,
+ 'link': 'https://blog.realworldfullstack.io/real-world-app-part-22-angular-testing-with-protractor-jasmine-and-jest-6a0e03a89038?source=rss----5fcb8756dcc3---4',
+ 'pubDate': "2018-07-22 17:09:00",
+ 'share_status': false,
+ 'subtitle': "End to end testing with Protractor and unit tests with Jest",
+ 'thumbnail': "https://cdn-images-1.medium.com/max/1024/1*VAuIh4dq6BxKDL8yXmGMTw.jpeg",
+ 'title': "Real World App - Part 22: Angular Testing with Protractor, Jasmine and Jest",
+ 'viewCount': 100,
+ 'created_uuid': 'ssHmHkKq9BPByP9c4CtmEqvO4xp2'
+}
+];
diff --git a/test/data/categories.ts b/test/data/categories.ts
new file mode 100644
index 000000000..33fc2efdc
--- /dev/null
+++ b/test/data/categories.ts
@@ -0,0 +1,12 @@
+export const Categories = {
+ 'categories': [
+ { 'id': 1, 'categoryName': 'Special' },
+ { 'id': 2, 'categoryName': 'Programming' },
+ { 'id': 3, 'categoryName': 'Architecture' },
+ { 'id': 4, 'categoryName': 'Networking/Infrastructure' },
+ { 'id': 5, 'categoryName': 'Database' },
+ { 'id': 6, 'categoryName': 'Dev Ops' },
+ { 'id': 7, 'categoryName': 'UX/UI' }
+ ]
+};
+
diff --git a/test/data/category-dictionary.ts b/test/data/category-dictionary.ts
new file mode 100644
index 000000000..f8e658ded
--- /dev/null
+++ b/test/data/category-dictionary.ts
@@ -0,0 +1,47 @@
+export const CategoryDictionary = {
+ '1': {
+ 'id': 1,
+ 'categoryName': 'Bit of sci-fi',
+ 'requiredForGamePlay': true
+ },
+ '2': {
+ 'id': 2,
+ 'categoryName': 'Programming',
+ 'requiredForGamePlay': false
+ },
+ '3': {
+ 'id': 3,
+ 'categoryName': 'Architecture',
+ 'requiredForGamePlay': false
+ },
+ '4': {
+ 'id': 4,
+ 'categoryName': 'Networking/Infrastructure',
+ 'requiredForGamePlay': false
+ },
+ '5': {
+ 'id': 5,
+ 'categoryName': 'Database',
+ 'requiredForGamePlay': false
+ },
+ '6': {
+ 'id': 6,
+ 'categoryName': 'Dev Ops',
+ 'requiredForGamePlay': false
+ },
+ '7': {
+ 'id': 7,
+ 'categoryName': 'UX/UI',
+ 'requiredForGamePlay': false
+ },
+ '8': {
+ 'id': 8,
+ 'categoryName': 'Bit of fact',
+ 'requiredForGamePlay': true
+ },
+ '9': {
+ 'id': 9,
+ 'categoryName': 'Hardware',
+ 'requiredForGamePlay': false
+ }
+};
diff --git a/test/data/games.ts b/test/data/games.ts
new file mode 100644
index 000000000..2ab11092c
--- /dev/null
+++ b/test/data/games.ts
@@ -0,0 +1,2275 @@
+export const Games = [
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 1,
+ 8,
+ 2,
+ 3,
+ 4,
+ 5,
+ 7,
+ 9
+ ],
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'opponentType': 0,
+ 'playerMode': 1,
+ 'tags': []
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1'
+ ],
+ 'nextTurnPlayerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '0OpXYFZSk505ra1jW6fb',
+ 'addedOn': 1587463516000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': true,
+ 'round': 1,
+ 'categoryId': [
+ 5
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'T5NYSrY4BrlwI2j2zFz4',
+ 'addedOn': 1587463525000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 3,
+ 'answerCorrect': true,
+ 'round': 1,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'paper',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '0POnDURRgIGOs9kU2nLH',
+ 'addedOn': 1587463537000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 1,
+ 'answerCorrect': false,
+ 'round': 1,
+ 'categoryId': [
+ 8
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1',
+ 'questionId': '3o2wdaX1HzBWtKZCLGi6',
+ 'addedOn': 1587463593000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 3,
+ 'answerCorrect': true,
+ 'round': 1,
+ 'categoryId': [
+ 8
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1',
+ 'questionId': '4h2XmfCQH1fVP7LtLN26',
+ 'addedOn': 1587463604000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 1,
+ 'answerCorrect': false,
+ 'round': 1,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'GkHDJPwUUYF8C57hBTfU',
+ 'addedOn': 1587463649000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': true,
+ 'round': 2,
+ 'categoryId': [
+ 3
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '7YPp6rOYJZ1LjUK0E3qy',
+ 'addedOn': 1587463658000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': true,
+ 'round': 2,
+ 'categoryId': [
+ 8
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'GMwmK5ckSoQuRXRpB0jb',
+ 'addedOn': 1587463668000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': true,
+ 'round': 2,
+ 'categoryId': [
+ 4
+ ],
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'gqyxSCBlWNIL3IUJnop1',
+ 'addedOn': 1587463678000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': true,
+ 'round': 2,
+ 'categoryId': [
+ 4
+ ],
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'NmK5ApBbcqV7t3JVZGTh',
+ 'addedOn': 1587463686000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 5,
+ 'answerCorrect': false,
+ 'round': 2,
+ 'categoryId': [
+ 4
+ ],
+ 'isReported': false
+ },
+ {
+ 'playerId': 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1',
+ 'questionId': 'ZvRtEegq8CPySojR6RUd',
+ 'addedOn': 1587463734000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': false,
+ 'round': 2,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'paper',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'USxShnwfA65wkxs2X9rY',
+ 'addedOn': 1587463742000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 1,
+ 'answerCorrect': true,
+ 'round': 3,
+ 'categoryId': [
+ 4
+ ],
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '544BhjgXE070vNC0II5q',
+ 'addedOn': 1587463751000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 8,
+ 'answerCorrect': true,
+ 'round': 3,
+ 'categoryId': [
+ 4
+ ],
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '8QgcZTS0cQAokNG7oqQr',
+ 'addedOn': 1587463775000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 4,
+ 'answerCorrect': true,
+ 'round': 3,
+ 'categoryId': [
+ 9
+ ],
+ 'isReported': false
+ }
+ ],
+ 'gameId': 'vTzY3HeUvy9lXxaGHa0d',
+ 'GameStatus': 'waiting for next question',
+ 'createdAt': 1587463514000,
+ 'turnAt': 1588206930838,
+ 'gameOverAt': 1587463792000,
+ 'reminder32Min': false,
+ 'reminder8Hr': false,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 2,
+ 'badge': [
+ 'scissors',
+ 'paper',
+ 'rock',
+ 'lizard'
+ ],
+ 'consecutiveCorrectAnswers': 1,
+ 'score': 10
+ },
+ 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1': {
+ 'avgAnsTime': 2,
+ 'badge': [
+ 'lizard'
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 1
+ }
+ },
+ 'round': 3
+ },
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 1,
+ 8,
+ 2,
+ 3,
+ 4,
+ 5,
+ 7,
+ 9
+ ],
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'opponentType': 0,
+ 'playerMode': 1,
+ 'tags': []
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1'
+ ],
+ 'nextTurnPlayerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '0OpXYFZSk505ra1jW6fb',
+ 'addedOn': 1587463516000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': true,
+ 'round': 1,
+ 'categoryId': [
+ 5
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'T5NYSrY4BrlwI2j2zFz4',
+ 'addedOn': 1587463525000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 3,
+ 'answerCorrect': true,
+ 'round': 1,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'paper',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '0POnDURRgIGOs9kU2nLH',
+ 'addedOn': 1587463537000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 1,
+ 'answerCorrect': false,
+ 'round': 1,
+ 'categoryId': [
+ 8
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1',
+ 'questionId': '3o2wdaX1HzBWtKZCLGi6',
+ 'addedOn': 1587463593000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 3,
+ 'answerCorrect': true,
+ 'round': 1,
+ 'categoryId': [
+ 8
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1',
+ 'questionId': '4h2XmfCQH1fVP7LtLN26',
+ 'addedOn': 1587463604000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 1,
+ 'answerCorrect': false,
+ 'round': 1,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'GkHDJPwUUYF8C57hBTfU',
+ 'addedOn': 1587463649000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': true,
+ 'round': 2,
+ 'categoryId': [
+ 3
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '7YPp6rOYJZ1LjUK0E3qy',
+ 'addedOn': 1587463658000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': true,
+ 'round': 2,
+ 'categoryId': [
+ 8
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'GMwmK5ckSoQuRXRpB0jb',
+ 'addedOn': 1587463668000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': true,
+ 'round': 2,
+ 'categoryId': [
+ 4
+ ],
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'gqyxSCBlWNIL3IUJnop1',
+ 'addedOn': 1587463678000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': true,
+ 'round': 2,
+ 'categoryId': [
+ 4
+ ],
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'NmK5ApBbcqV7t3JVZGTh',
+ 'addedOn': 1587463686000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 5,
+ 'answerCorrect': false,
+ 'round': 2,
+ 'categoryId': [
+ 4
+ ],
+ 'isReported': false
+ },
+ {
+ 'playerId': 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1',
+ 'questionId': 'ZvRtEegq8CPySojR6RUd',
+ 'addedOn': 1587463734000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': false,
+ 'round': 2,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'paper',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'USxShnwfA65wkxs2X9rY',
+ 'addedOn': 1587463742000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 1,
+ 'answerCorrect': true,
+ 'round': 3,
+ 'categoryId': [
+ 4
+ ],
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '544BhjgXE070vNC0II5q',
+ 'addedOn': 1587463751000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 8,
+ 'answerCorrect': true,
+ 'round': 3,
+ 'categoryId': [
+ 4
+ ],
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '8QgcZTS0cQAokNG7oqQr',
+ 'addedOn': 1587463775000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 4,
+ 'answerCorrect': true,
+ 'round': 3,
+ 'categoryId': [
+ 9
+ ],
+ 'isReported': false
+ }
+ ],
+ 'gameId': 'vTzY3HeUvy9lXxaGHa0d',
+ 'GameStatus': 'waiting for next question',
+ 'createdAt': 1587463514000,
+ 'turnAt': 1588197930838,
+ 'gameOverAt': 1587463792000,
+ 'reminder32Min': false,
+ 'reminder8Hr': false,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 2,
+ 'badge': [
+ 'scissors',
+ 'paper',
+ 'rock',
+ 'lizard'
+ ],
+ 'consecutiveCorrectAnswers': 1,
+ 'score': 10
+ },
+ 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1': {
+ 'avgAnsTime': 2,
+ 'badge': [
+ 'lizard'
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 1
+ }
+ },
+ 'round': 3
+ },
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 1,
+ 8,
+ 2,
+ 4,
+ 7,
+ 9
+ ],
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'playerMode': 0,
+ 'rematch': true,
+ 'tags': [
+
+ ]
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2'
+ ],
+ 'nextTurnPlayerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '4woefFvfN4tjwy4d75ai',
+ 'addedOn': 1588682704000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': false,
+ 'round': 1,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'Z8mHBiJFAKtbDjKaPMrr',
+ 'addedOn': 1588682713000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 4,
+ 'answerCorrect': false,
+ 'round': 2,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'qrSZKsIk8MkoZlq0IRoe',
+ 'addedOn': 1588682725000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 5,
+ 'answerCorrect': true,
+ 'round': 3,
+ 'categoryId': [
+ 8
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '0rJfn8pBBJtL2VmxZKoX',
+ 'addedOn': 1588682738000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 1,
+ 'answerCorrect': false,
+ 'round': 4,
+ 'categoryId': [
+ 4
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'PoVMQ2E2aWulS8i3otoo',
+ 'addedOn': 1588682745000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': true,
+ 'round': 5,
+ 'categoryId': [
+ 4
+ ],
+ 'badge': {
+ 'name': 'paper',
+ 'won': true
+ },
+ 'isReported': false
+ }
+ ],
+ 'gameId': 'DAojdtJcizXpgxvHwzAU',
+ 'GameStatus': 'time expired',
+ 'createdAt': 1588682703000,
+ 'turnAt': 1588682750000,
+ 'gameOverAt': 1588798644000,
+ 'reminder32Min': true,
+ 'reminder8Hr': true,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 2,
+ 'badge': [
+ 'lizard',
+ 'paper'
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 2
+ }
+ },
+ 'round': 5
+ },
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 1,
+ 8,
+ 2,
+ 4,
+ 7,
+ 9
+ ],
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'opponentType': null,
+ 'playerMode': '0',
+ 'tags': [
+ 'java',
+ 'class',
+ 'base',
+ 'c',
+ 'milan',
+ 'test'
+ ]
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2'
+ ],
+ 'nextTurnPlayerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'GEeTTRCRNb3I0TaKRv18',
+ 'addedOn': 1588679169000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': true,
+ 'round': 1,
+ 'categoryId': [
+ 4
+ ],
+ 'badge': {
+ 'name': 'paper',
+ 'won': true
+ },
+ 'isReported': false
+ }
+ ],
+ 'gameId': 'HqUyq0qaCJ5KA9qQatMx',
+ 'GameStatus': 'time expired',
+ 'createdAt': 1588679168000,
+ 'turnAt': 1588679172000,
+ 'gameOverAt': 1588795044000,
+ 'reminder32Min': true,
+ 'reminder8Hr': true,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 0,
+ 'badge': [
+ 'paper'
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 1
+ }
+ },
+ 'round': 1
+ },
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 1,
+ 8,
+ 2,
+ 4,
+ 7,
+ 9
+ ],
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'playerMode': 0,
+ 'tags': [
+
+ ]
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2'
+ ],
+ 'nextTurnPlayerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '4rcbqMO7CuvdAjFOqxzJ',
+ 'addedOn': 1588682611000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 1,
+ 'answerCorrect': false,
+ 'round': 1,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'NkZ60EgiuYBsqt22B3pn',
+ 'addedOn': 1588682618000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 5,
+ 'answerCorrect': false,
+ 'round': 2,
+ 'categoryId': [
+ 8
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'EtRkEUKfEV6ggsNeFKa6',
+ 'addedOn': 1588682638000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 4,
+ 'answerCorrect': true,
+ 'round': 3,
+ 'categoryId': [
+ 4
+ ],
+ 'badge': {
+ 'name': 'paper',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'EEKCxEpDwMgNnvA8A3AF',
+ 'addedOn': 1588682651000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': true,
+ 'round': 4,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '5VYHKNb6ID6bpXLb1Yvj',
+ 'addedOn': 1588682678000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 9,
+ 'answerCorrect': false,
+ 'round': 5,
+ 'categoryId': [
+ 9
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'BXlrHtCVX1K8cktlL8BZ',
+ 'addedOn': 1588682693000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 4,
+ 'answerCorrect': false,
+ 'round': 6,
+ 'categoryId': [
+ '8'
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': false
+ },
+ 'isReported': false
+ }
+ ],
+ 'gameId': 'aEFryEhFppFLxmxXZ1Mh',
+ 'GameStatus': 'completed',
+ 'createdAt': 1588682610000,
+ 'turnAt': 1588682699000,
+ 'gameOverAt': 1588682701000,
+ 'reminder32Min': false,
+ 'reminder8Hr': false,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 4,
+ 'badge': [
+ 'paper',
+ 'rock'
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 2
+ }
+ },
+ 'round': 6
+ },
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 1,
+ 8,
+ 2,
+ 4,
+ 7,
+ 9
+ ],
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'opponentType': null,
+ 'playerMode': '0',
+ 'tags': [
+ 'java',
+ 'class',
+ 'base',
+ 'c',
+ 'milan',
+ 'test'
+ ]
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2'
+ ],
+ 'nextTurnPlayerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'D84v6F668ABL3HPW7OA2',
+ 'addedOn': 1588223054000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 1,
+ 'categoryId': [
+ 1
+ ],
+ 'badge': {
+ 'name': 'spoke',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'UMRsetdzrQ5iOJFdn1X7',
+ 'addedOn': 1588223059000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': true,
+ 'round': 2,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '1v3zOKOs8B2xLyzPfT2P',
+ 'addedOn': 1588223067000,
+ 'playerAnswerId': null,
+ 'playerAnswerInSeconds': 16,
+ 'answerCorrect': false,
+ 'round': 3,
+ 'categoryId': [
+ 9
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '9UnwPpseIpq4VeZ9p9v1',
+ 'addedOn': 1588223111000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': true,
+ 'round': 4,
+ 'categoryId': [
+ 1
+ ],
+ 'badge': {
+ 'name': 'spoke',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'PyzJT210UrMwdImwgsRB',
+ 'addedOn': 1588223123000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 5,
+ 'categoryId': [
+ 8
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'GMwmK5ckSoQuRXRpB0jb',
+ 'addedOn': 1588223127000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 1,
+ 'answerCorrect': false,
+ 'round': 6,
+ 'categoryId': [
+ 4
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ }
+ ],
+ 'gameId': '5rYHjQ78x1OGUJevy2cK',
+ 'GameStatus': 'completed',
+ 'createdAt': 1588223053000,
+ 'turnAt': 1588223131000,
+ 'gameOverAt': 1588223132000,
+ 'reminder32Min': false,
+ 'reminder8Hr': false,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 2,
+ 'badge': [
+ 'rock',
+ 'spoke'
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 2
+ }
+ },
+ 'round': 6
+ },
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 1,
+ 8,
+ 2,
+ 4,
+ 7,
+ 9
+ ],
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'opponentType': null,
+ 'playerMode': '0',
+ 'tags': [
+
+ ]
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2'
+ ],
+ 'nextTurnPlayerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '9KFazD542SzJ3r82EghZ',
+ 'addedOn': 1587368865000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': true,
+ 'round': 1,
+ 'categoryId': [
+ '1'
+ ],
+ 'badge': {
+ 'name': 'spoke',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'fTJys3cjkl2xKhYAnFeE',
+ 'addedOn': 1587368884000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 1,
+ 'answerCorrect': false,
+ 'round': 2,
+ 'categoryId': [
+ '2'
+ ],
+ 'badge': {
+ 'name': 'paper',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'uX4QxAXokgu6rRbvZlIG',
+ 'addedOn': 1587368891000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 3,
+ 'categoryId': [
+ '2'
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': false
+ },
+ 'isReported': true
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'AMZvRYjcCLQoV3EbMY8A',
+ 'addedOn': 1587368902000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 4,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'Q1W3Z9Wi0wDCrMdE4NSb',
+ 'addedOn': 1587368909000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 5,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'paper',
+ 'won': false
+ },
+ 'isReported': false
+ }
+ ],
+ 'gameId': 'WDX3q3509ZVHcL1R1XS3',
+ 'GameStatus': 'completed',
+ 'createdAt': 1587368863000,
+ 'turnAt': 1587368912000,
+ 'gameOverAt': 1587368913000,
+ 'reminder32Min': false,
+ 'reminder8Hr': false,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 0,
+ 'badge': [
+ 'spoke'
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 1
+ }
+ },
+ 'round': 5
+ },
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 1,
+ 8,
+ 2,
+ 4,
+ 7,
+ 9
+ ],
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'opponentType': null,
+ 'playerMode': '0',
+ 'tags': [
+ 'java',
+ 'class',
+ 'base',
+ 'c',
+ 'milan',
+ 'test'
+ ]
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2'
+ ],
+ 'nextTurnPlayerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'USxShnwfA65wkxs2X9rY',
+ 'addedOn': 1587128856000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': true,
+ 'round': 1,
+ 'categoryId': [
+ 4
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'nL0R1frXsWNdElOhUmtF',
+ 'addedOn': 1587128863000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 2,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'Qc0wXfHttTdDbVtQpZ4a',
+ 'addedOn': 1587128868000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 3,
+ 'categoryId': [
+ 8
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'BvK5KEmkOxl2cVi6f5Dz',
+ 'addedOn': 1587128873000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 4,
+ 'categoryId': [
+ '8'
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'BXlrHtCVX1K8cktlL8BZ',
+ 'addedOn': 1587128878000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': true,
+ 'round': 5,
+ 'categoryId': [
+ '8'
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '8FLY1x6pefEPRbUOIKkp',
+ 'addedOn': 1587128885000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 6,
+ 'categoryId': [
+ '2'
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ }
+ ],
+ 'gameId': 'm4Rji6g4GZADN3VkiQyM',
+ 'GameStatus': 'completed',
+ 'createdAt': 1587128854000,
+ 'turnAt': 1587128887000,
+ 'gameOverAt': 1587128888000,
+ 'reminder32Min': false,
+ 'reminder8Hr': false,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 0,
+ 'badge': [
+ 'rock',
+ 'lizard'
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 2
+ }
+ },
+ 'round': 6
+ },
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 2,
+ 4,
+ 7,
+ 8,
+ 9
+ ],
+ 'friendId': 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1',
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'opponentType': 1,
+ 'playerMode': 1,
+ 'tags': [
+ 'java',
+ 'class',
+ 'base',
+ 'c',
+ 'milan',
+ 'test'
+ ]
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1'
+ ],
+ 'nextTurnPlayerId': 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'NI7FD9qUB1BDFr1PL8sQ',
+ 'addedOn': 1585906806000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': false,
+ 'round': 1,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': false
+ },
+ 'isReported': false
+ }
+ ],
+ 'gameId': 'UUccLlvwsD7Ozgm7aY9Q',
+ 'GameStatus': 'invitation timeout',
+ 'createdAt': 1585906805000,
+ 'turnAt': 1585906810000,
+ 'gameOverAt': 1586598658000,
+ 'reminder32Min': false,
+ 'reminder8Hr': true,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 2,
+ 'badge': [
+
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 0
+ },
+ 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1': {
+ 'avgAnsTime': 0,
+ 'badge': [
+
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 0
+ }
+ },
+ 'round': 1
+ },
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 1,
+ 8,
+ 2,
+ 4,
+ 7,
+ 9
+ ],
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'playerMode': 0,
+ 'rematch': true,
+ 'tags': [
+
+ ]
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2'
+ ],
+ 'nextTurnPlayerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '4woefFvfN4tjwy4d75ai',
+ 'addedOn': 1588682704000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': false,
+ 'round': 1,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'Z8mHBiJFAKtbDjKaPMrr',
+ 'addedOn': 1588682713000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 4,
+ 'answerCorrect': false,
+ 'round': 2,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'qrSZKsIk8MkoZlq0IRoe',
+ 'addedOn': 1588682725000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 5,
+ 'answerCorrect': true,
+ 'round': 3,
+ 'categoryId': [
+ 8
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '0rJfn8pBBJtL2VmxZKoX',
+ 'addedOn': 1588682738000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 1,
+ 'answerCorrect': false,
+ 'round': 4,
+ 'categoryId': [
+ 4
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'PoVMQ2E2aWulS8i3otoo',
+ 'addedOn': 1588682745000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': true,
+ 'round': 5,
+ 'categoryId': [
+ 4
+ ],
+ 'badge': {
+ 'name': 'paper',
+ 'won': true
+ },
+ 'isReported': false
+ }
+ ],
+ 'gameId': 'DAojdtJcizXpgxvHwzAU',
+ 'GameStatus': 'time expired',
+ 'createdAt': 1588682703000,
+ 'turnAt': 1588682750000,
+ 'gameOverAt': 1588798644000,
+ 'reminder32Min': true,
+ 'reminder8Hr': true,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 2,
+ 'badge': [
+ 'lizard',
+ 'paper'
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 2
+ }
+ },
+ 'round': 5
+ },
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 1,
+ 8,
+ 2,
+ 4,
+ 7,
+ 9
+ ],
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'opponentType': null,
+ 'playerMode': '0',
+ 'tags': [
+ 'java',
+ 'class',
+ 'base',
+ 'c',
+ 'milan',
+ 'test'
+ ]
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2'
+ ],
+ 'nextTurnPlayerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'GEeTTRCRNb3I0TaKRv18',
+ 'addedOn': 1588679169000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': true,
+ 'round': 1,
+ 'categoryId': [
+ 4
+ ],
+ 'badge': {
+ 'name': 'paper',
+ 'won': true
+ },
+ 'isReported': false
+ }
+ ],
+ 'gameId': 'HqUyq0qaCJ5KA9qQatMx',
+ 'GameStatus': 'time expired',
+ 'createdAt': 1588679168000,
+ 'turnAt': 1588679172000,
+ 'gameOverAt': 1588795044000,
+ 'reminder32Min': true,
+ 'reminder8Hr': true,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 0,
+ 'badge': [
+ 'paper'
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 1
+ }
+ },
+ 'round': 1
+ },
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 1,
+ 8,
+ 2,
+ 4,
+ 7,
+ 9
+ ],
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'playerMode': 0,
+ 'tags': [
+
+ ]
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2'
+ ],
+ 'nextTurnPlayerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '4rcbqMO7CuvdAjFOqxzJ',
+ 'addedOn': 1588682611000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 1,
+ 'answerCorrect': false,
+ 'round': 1,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'NkZ60EgiuYBsqt22B3pn',
+ 'addedOn': 1588682618000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 5,
+ 'answerCorrect': false,
+ 'round': 2,
+ 'categoryId': [
+ 8
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'EtRkEUKfEV6ggsNeFKa6',
+ 'addedOn': 1588682638000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 4,
+ 'answerCorrect': true,
+ 'round': 3,
+ 'categoryId': [
+ 4
+ ],
+ 'badge': {
+ 'name': 'paper',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'EEKCxEpDwMgNnvA8A3AF',
+ 'addedOn': 1588682651000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': true,
+ 'round': 4,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '5VYHKNb6ID6bpXLb1Yvj',
+ 'addedOn': 1588682678000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 9,
+ 'answerCorrect': false,
+ 'round': 5,
+ 'categoryId': [
+ 9
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'BXlrHtCVX1K8cktlL8BZ',
+ 'addedOn': 1588682693000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 4,
+ 'answerCorrect': false,
+ 'round': 6,
+ 'categoryId': [
+ '8'
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': false
+ },
+ 'isReported': false
+ }
+ ],
+ 'gameId': 'aEFryEhFppFLxmxXZ1Mh',
+ 'GameStatus': 'completed',
+ 'createdAt': 1588682610000,
+ 'turnAt': 1588682699000,
+ 'gameOverAt': 1588682701000,
+ 'reminder32Min': false,
+ 'reminder8Hr': false,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 4,
+ 'badge': [
+ 'paper',
+ 'rock'
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 2
+ }
+ },
+ 'round': 6
+ },
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 1,
+ 8,
+ 2,
+ 4,
+ 7,
+ 9
+ ],
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'opponentType': null,
+ 'playerMode': '0',
+ 'tags': [
+ 'java',
+ 'class',
+ 'base',
+ 'c',
+ 'milan',
+ 'test'
+ ]
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2'
+ ],
+ 'nextTurnPlayerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'D84v6F668ABL3HPW7OA2',
+ 'addedOn': 1588223054000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 1,
+ 'categoryId': [
+ 1
+ ],
+ 'badge': {
+ 'name': 'spoke',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'UMRsetdzrQ5iOJFdn1X7',
+ 'addedOn': 1588223059000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': true,
+ 'round': 2,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '1v3zOKOs8B2xLyzPfT2P',
+ 'addedOn': 1588223067000,
+ 'playerAnswerId': null,
+ 'playerAnswerInSeconds': 16,
+ 'answerCorrect': false,
+ 'round': 3,
+ 'categoryId': [
+ 9
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '9UnwPpseIpq4VeZ9p9v1',
+ 'addedOn': 1588223111000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': true,
+ 'round': 4,
+ 'categoryId': [
+ 1
+ ],
+ 'badge': {
+ 'name': 'spoke',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'PyzJT210UrMwdImwgsRB',
+ 'addedOn': 1588223123000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 5,
+ 'categoryId': [
+ 8
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'GMwmK5ckSoQuRXRpB0jb',
+ 'addedOn': 1588223127000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 1,
+ 'answerCorrect': false,
+ 'round': 6,
+ 'categoryId': [
+ 4
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ }
+ ],
+ 'gameId': '5rYHjQ78x1OGUJevy2cK',
+ 'GameStatus': 'completed',
+ 'createdAt': 1588223053000,
+ 'turnAt': 1588223131000,
+ 'gameOverAt': 1588223132000,
+ 'reminder32Min': false,
+ 'reminder8Hr': false,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 2,
+ 'badge': [
+ 'rock',
+ 'spoke'
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 2
+ }
+ },
+ 'round': 6
+ },
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 1,
+ 8,
+ 2,
+ 4,
+ 7,
+ 9
+ ],
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'opponentType': null,
+ 'playerMode': '0',
+ 'tags': [
+
+ ]
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2'
+ ],
+ 'nextTurnPlayerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '9KFazD542SzJ3r82EghZ',
+ 'addedOn': 1587368865000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': true,
+ 'round': 1,
+ 'categoryId': [
+ '1'
+ ],
+ 'badge': {
+ 'name': 'spoke',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'fTJys3cjkl2xKhYAnFeE',
+ 'addedOn': 1587368884000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 1,
+ 'answerCorrect': false,
+ 'round': 2,
+ 'categoryId': [
+ '2'
+ ],
+ 'badge': {
+ 'name': 'paper',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'uX4QxAXokgu6rRbvZlIG',
+ 'addedOn': 1587368891000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 3,
+ 'categoryId': [
+ '2'
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': false
+ },
+ 'isReported': true
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'AMZvRYjcCLQoV3EbMY8A',
+ 'addedOn': 1587368902000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 4,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'Q1W3Z9Wi0wDCrMdE4NSb',
+ 'addedOn': 1587368909000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 5,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'paper',
+ 'won': false
+ },
+ 'isReported': false
+ }
+ ],
+ 'gameId': 'WDX3q3509ZVHcL1R1XS3',
+ 'GameStatus': 'completed',
+ 'createdAt': 1587368863000,
+ 'turnAt': 1587368912000,
+ 'gameOverAt': 1587368913000,
+ 'reminder32Min': false,
+ 'reminder8Hr': false,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 0,
+ 'badge': [
+ 'spoke'
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 1
+ }
+ },
+ 'round': 5
+ },
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 1,
+ 8,
+ 2,
+ 4,
+ 7,
+ 9
+ ],
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'opponentType': null,
+ 'playerMode': '0',
+ 'tags': [
+ 'java',
+ 'class',
+ 'base',
+ 'c',
+ 'milan',
+ 'test'
+ ]
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2'
+ ],
+ 'nextTurnPlayerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'USxShnwfA65wkxs2X9rY',
+ 'addedOn': 1587128856000,
+ 'playerAnswerId': '2',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': true,
+ 'round': 1,
+ 'categoryId': [
+ 4
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'nL0R1frXsWNdElOhUmtF',
+ 'addedOn': 1587128863000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 2,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'Qc0wXfHttTdDbVtQpZ4a',
+ 'addedOn': 1587128868000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 3,
+ 'categoryId': [
+ 8
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'BvK5KEmkOxl2cVi6f5Dz',
+ 'addedOn': 1587128873000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 4,
+ 'categoryId': [
+ '8'
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': false
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'BXlrHtCVX1K8cktlL8BZ',
+ 'addedOn': 1587128878000,
+ 'playerAnswerId': '3',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': true,
+ 'round': 5,
+ 'categoryId': [
+ '8'
+ ],
+ 'badge': {
+ 'name': 'lizard',
+ 'won': true
+ },
+ 'isReported': false
+ },
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': '8FLY1x6pefEPRbUOIKkp',
+ 'addedOn': 1587128885000,
+ 'playerAnswerId': '0',
+ 'playerAnswerInSeconds': 0,
+ 'answerCorrect': false,
+ 'round': 6,
+ 'categoryId': [
+ '2'
+ ],
+ 'badge': {
+ 'name': 'scissors',
+ 'won': false
+ },
+ 'isReported': false
+ }
+ ],
+ 'gameId': 'm4Rji6g4GZADN3VkiQyM',
+ 'GameStatus': 'completed',
+ 'createdAt': 1587128854000,
+ 'turnAt': 1587128887000,
+ 'gameOverAt': 1587128888000,
+ 'reminder32Min': false,
+ 'reminder8Hr': false,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 0,
+ 'badge': [
+ 'rock',
+ 'lizard'
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 2
+ }
+ },
+ 'round': 6
+ },
+ {
+ 'gameOptions': {
+ 'categoryIds': [
+ 2,
+ 4,
+ 7,
+ 8,
+ 9
+ ],
+ 'friendId': 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1',
+ 'gameMode': 0,
+ 'isBadgeWithCategory': true,
+ 'isChallenge': false,
+ 'maxQuestions': 8,
+ 'opponentType': 1,
+ 'playerMode': 1,
+ 'tags': [
+ 'java',
+ 'class',
+ 'base',
+ 'c',
+ 'milan',
+ 'test'
+ ]
+ },
+ 'playerIds': [
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1'
+ ],
+ 'nextTurnPlayerId': 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1',
+ 'gameOver': true,
+ 'playerQnAs': [
+ {
+ 'playerId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2',
+ 'questionId': 'NI7FD9qUB1BDFr1PL8sQ',
+ 'addedOn': 1585906806000,
+ 'playerAnswerId': '1',
+ 'playerAnswerInSeconds': 2,
+ 'answerCorrect': false,
+ 'round': 1,
+ 'categoryId': [
+ 2
+ ],
+ 'badge': {
+ 'name': 'rock',
+ 'won': false
+ },
+ 'isReported': false
+ }
+ ],
+ 'gameId': 'UUccLlvwsD7Ozgm7aY9Q',
+ 'GameStatus': 'invitation timeout',
+ 'createdAt': 1585906805000,
+ 'turnAt': 1585906810000,
+ 'gameOverAt': 1586598658000,
+ 'reminder32Min': false,
+ 'reminder8Hr': true,
+ 'stats': {
+ '4kFa6HRvP5OhvYXsH9mEsRrXj4o2': {
+ 'avgAnsTime': 2,
+ 'badge': [
+
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 0
+ },
+ 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1': {
+ 'avgAnsTime': 0,
+ 'badge': [
+
+ ],
+ 'consecutiveCorrectAnswers': 0,
+ 'score': 0
+ }
+ },
+ 'round': 1
+ }
+];
+
diff --git a/test/data/index.ts b/test/data/index.ts
new file mode 100644
index 000000000..aebd926b5
--- /dev/null
+++ b/test/data/index.ts
@@ -0,0 +1,9 @@
+export * from './categories';
+export * from './category-dictionary';
+export * from './tag-list';
+export * from './questions';
+export * from './user-list';
+export * from './blogs';
+export * from './realtime-stats';
+export * from './games';
+export * from './application-settings';
diff --git a/test/data/questions.ts b/test/data/questions.ts
new file mode 100644
index 000000000..f95839469
--- /dev/null
+++ b/test/data/questions.ts
@@ -0,0 +1,179 @@
+export const Questions = {
+ 'published': [
+ {
+ 'id': '1',
+ 'questionText': 'Which of the following function of Array object reverses the order of the elements of an array?',
+ 'answers': [
+ {
+ 'id': 1,
+ 'answerText': 'reverse()',
+ 'correct': true
+ },
+ {
+ 'id': 2,
+ 'answerText': 'push()',
+ 'correct': false
+ },
+ {
+ 'id': 3,
+ 'answerText': 'reduce()',
+ 'correct': false
+ },
+ {
+ 'id': 4,
+ 'answerText': 'reduceRight()',
+ 'correct': false
+ }
+ ],
+ 'ordered': false,
+ 'tags': ['JavaScript', 'front-end', 'ES5'],
+ 'categoryIds': [2]
+ },
+ {
+ 'id': '2',
+ 'questionText': 'Which of the following function of Array object calls a function for each element in the array?',
+ 'answers': [
+ {
+ 'id': 1,
+ 'answerText': 'concat()',
+ 'correct': false
+ },
+ {
+ 'id': 2,
+ 'answerText': 'every()',
+ 'correct': false
+ },
+ {
+ 'id': 3,
+ 'answerText': 'filter()',
+ 'correct': false
+ },
+ {
+ 'id': 4,
+ 'answerText': 'forEach()',
+ 'correct': true
+ }
+ ],
+ 'ordered': false,
+ 'tags': ['JavaScript', 'front-end'],
+ 'categoryIds': [2]
+ },
+ {
+ 'id': '3',
+ 'questionText': 'Which of the following function of String object returns the index within the calling String object of the first occurrence of the specified value?',
+ 'answers': [
+ {
+ 'id': 1,
+ 'answerText': 'firstIndexOf()',
+ 'correct': false
+ },
+ {
+ 'id': 2,
+ 'answerText': 'lastIndexOf()',
+ 'correct': false
+ },
+ {
+ 'id': 3,
+ 'answerText': 'indexOf()',
+ 'correct': true
+ },
+ {
+ 'id': 4,
+ 'answerText': 'search()',
+ 'correct': false
+ }
+ ],
+ 'ordered': false,
+ 'tags': ['JavaScript'],
+ 'categoryIds': [2]
+ },
+ {
+ 'id': '4',
+ 'questionText': 'Which of the following function of Boolean object returns a string containing the source of the Boolean object?',
+ 'answers': [
+ {
+ 'id': 1,
+ 'answerText': 'valueOf()',
+ 'correct': false
+ },
+ {
+ 'id': 2,
+ 'answerText': 'toSource()',
+ 'correct': true
+ },
+ {
+ 'id': 3,
+ 'answerText': 'indexOf()',
+ 'correct': false
+ },
+ {
+ 'id': 4,
+ 'answerText': 'toString()',
+ 'correct': false
+ }
+ ],
+ 'ordered': false,
+ 'tags': ['JavaScript'],
+ 'categoryIds': [2]
+ },
+ {
+ 'id': '5',
+ 'questionText': 'Which of the following is true about cookie handling in JavaScript?',
+ 'answers': [
+ {
+ 'id': 1,
+ 'answerText': 'JavaScript can manipulate cookies using the cookie property of the Document object.',
+ 'correct': false
+ },
+ {
+ 'id': 2,
+ 'answerText': 'JavaScript can read, create, modify, and delete the cookie or cookies that apply to the current web page.',
+ 'correct': false
+ },
+ {
+ 'id': 3,
+ 'answerText': 'All of the above.',
+ 'correct': true
+ },
+ {
+ 'id': 4,
+ 'answerText': 'None of the above.',
+ 'correct': false
+ }
+ ],
+ 'ordered': true,
+ 'tags': ['JavaScript', 'ES5'],
+ 'categoryIds': [2]
+ },
+ {
+ 'id': '6',
+ 'questionText': 'What\'s the best Trivia game?',
+ 'answers': [
+ {
+ 'id': 1,
+ 'answerText': 'Quiz Up',
+ 'correct': false
+ },
+ {
+ 'id': 2,
+ 'answerText': 'Trivia Crack',
+ 'correct': false
+ },
+ {
+ 'id': 3,
+ 'answerText': 'The one I\'m playing',
+ 'correct': true
+ },
+ {
+ 'id': 4,
+ 'answerText': 'It\'s subjective',
+ 'correct': false
+ }
+ ],
+ 'ordered': false,
+ 'tags': ['gaming'],
+ 'categoryIds': [1]
+ }
+ ],
+ 'unpublished': []
+ };
diff --git a/test/data/realtime-stats.ts b/test/data/realtime-stats.ts
new file mode 100644
index 000000000..e3c97113e
--- /dev/null
+++ b/test/data/realtime-stats.ts
@@ -0,0 +1,7 @@
+export const RealTimeStats = {
+ 'active_games': 2,
+ 'game_played': 2518,
+ 'total_questions': 106,
+ 'total_users': 67
+};
+
diff --git a/test/data/tag-list.ts b/test/data/tag-list.ts
new file mode 100644
index 000000000..8b09d01a5
--- /dev/null
+++ b/test/data/tag-list.ts
@@ -0,0 +1,143 @@
+export const TagList = [
+ 'C#',
+ 'iOS',
+ 'Objective-C',
+ 'Swift',
+ 'Mobile',
+ 'Cloud',
+ 'AWS',
+ 'Azure',
+ 'Open Source',
+ 'NoSql',
+ 'SQL',
+ 'SQL Server',
+ 'MongoDB',
+ 'CI',
+ 'Selenium',
+ 'Agile',
+ 'Scrum',
+ 'Waterfall',
+ 'SDLC',
+ 'BI',
+ 'IoT',
+ 'Social',
+ 'Windows',
+ 'iPhone',
+ 'Analytics',
+ 'Data',
+ 'UX',
+ 'UI',
+ 'Python',
+ 'VB',
+ '.Net',
+ 'ASP.Net',
+ 'Unity',
+ 'DI',
+ 'EF',
+ 'ORM',
+ 'Spring',
+ 'Hibernate',
+ 'Oracle',
+ 'DB2',
+ 'Java',
+ 'Ruby',
+ 'Rails',
+ 'MySQL',
+ 'Postgres',
+ 'Enterprise',
+ 'Active Directory',
+ 'C',
+ 'C++',
+ 'REST',
+ 'API',
+ 'SDK',
+ 'SharePoint',
+ 'CRM',
+ 'Dynamics CRM',
+ 'Salesforce',
+ 'JavaScript',
+ 'AngularJS',
+ 'MVC',
+ 'MVP',
+ 'MVVM',
+ 'View',
+ 'Controller',
+ 'Model',
+ 'Cassandra',
+ 'DocumentDB',
+ 'ColumnDB',
+ 'Elastic Search',
+ 'Neo4J',
+ 'GraphDB',
+ 'KeyValue',
+ 'Hadoop',
+ 'HBase',
+ 'Pig',
+ 'Hive',
+ 'Zookeeper',
+ 'Linux',
+ 'Mac OS',
+ 'Motherboard',
+ 'Apache',
+ 'Cordova',
+ 'SPA',
+ 'PhoneGap',
+ 'Universal Apps',
+ 'Xamarin',
+ 'Eclipse',
+ 'PHP',
+ 'T-SQL',
+ 'Stored Procedure',
+ 'Trigger',
+ 'NTFS',
+ 'Journaled',
+ 'BootCamp',
+ 'Office 365',
+ 'POP',
+ 'IMAP',
+ 'SMTP',
+ 'TCP/IP',
+ 'IP Address',
+ 'Domain Controller',
+ 'DNS',
+ 'DHCP',
+ 'SATA',
+ 'USB',
+ 'HDMI',
+ 'Firewire',
+ 'Lightening',
+ 'Edison',
+ 'Galileo',
+ 'Arduino',
+ 'Rasberry Pi',
+ 'TypeScript',
+ 'CoffeeScript',
+ 'jQuery',
+ '3D Printer',
+ 'CAD',
+ 'Photoshop',
+ 'Illustrator',
+ 'jpg',
+ 'png',
+ 'Partition',
+ 'Unix',
+ 'kernel',
+ 'SOAP',
+ 'Authentication',
+ 'OAuth',
+ 'OpenID',
+ 'BitCoin',
+ 'ASP',
+ 'Mainframe',
+ 'Storyboard',
+ 'XCode',
+ 'AirDrop',
+ 'Bluetooth',
+ 'BLE',
+ 'ApplePay',
+ 'App Store',
+ 'Metal',
+ 'Pattern',
+ 'Distributed',
+ 'GIT'
+ ];
diff --git a/test/data/user-list.ts b/test/data/user-list.ts
new file mode 100644
index 000000000..61743c457
--- /dev/null
+++ b/test/data/user-list.ts
@@ -0,0 +1,115 @@
+export const UserList = [
+ {
+ 'androidPushTokens': [
+ {
+ 'online': false,
+ 'token': 'ct7vhZOa__U:APA91bFCVEncCZg__c0P8kZo2k0WfCB_nVUds4sViaQiyPmUX7VUf29vfKUEQ4jRQ5BRq9BMRNdZDrVIVgMH-fGB6f1AEXXca4TAjPOGoaFVjKMA7952BMuaLy4-Z9-y0EC76abGDPsJ'
+ }
+ ],
+ 'authState': null,
+ 'bulkUploadPermissionStatus': 'false',
+ 'bulkUploadPermissionStatusUpdateTime': 1588266851711,
+ 'croppedImageUrl': '',
+ 'originalImageUrl': '',
+ 'imageType': '',
+ 'gamePlayed': [],
+ 'captured': 'web',
+ 'categoryIds': [
+ 2,
+ 8,
+ 3,
+ 4,
+ 5,
+ 9,
+ 7
+ ],
+ 'displayName': 'Priyanka 124',
+ 'email': 'priyankamavani99+124@gmail.com',
+ 'idToken': 'eyJhbGciOiJSUzI1NiIsImtpZCI6Ijg4ODQ4YjVhZmYyZDUyMDEzMzFhNTQ3ZDE5MDZlNWFhZGY2NTEzYzgiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZS5jb20vcndhLXRyaXZpYS1kZXYtZTU3ZmMiLCJhdWQiOiJyd2EtdHJpdmlhLWRldi1lNTdmYyIsImF1dGhfdGltZSI6MTU4NzEyMTIwNiwidXNlcl9pZCI6IjRrRmE2SFJ2UDVPaHZZWHNIOW1Fc1JyWGo0bzIiLCJzdWIiOiI0a0ZhNkhSdlA1T2h2WVhzSDltRXNSclhqNG8yIiwiaWF0IjoxNTg4MjY0OTIzLCJleHAiOjE1ODgyNjg1MjMsImVtYWlsIjoicHJpeWFua2FtYXZhbmk5OSsxMjRAZ21haWwuY29tIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJmaXJlYmFzZSI6eyJpZGVudGl0aWVzIjp7ImVtYWlsIjpbInByaXlhbmthbWF2YW5pOTkrMTI0QGdtYWlsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6InBhc3N3b3JkIn19.PYorEbISiEgg728CNYxvFcJU4PxCvts50IoumdTN39xF9yKQl0t1rZt8CkNjPu9lP_eZcvbxHPET583LhqiVR6E-HjxMACV23tTrSpJlEfi3FTcG4BlELDNOIt529Il0xYlDJaLCTnT8D3uJV79dBpyFYQ9tP3RRXxTdJv4HZXYbjiXLmuK3tOwLiLzI_ZWgFDfpYHqg17bJKTtfjTC7blorhpZYfDDrc6BH4y3aJaN84CJtIhTeN4fNePjEBRWDWa3hNZs2lDik5eslRWXP8HR09k4c251UKw1vcehZm-ISzYSVuYHCMoK9eDjB2Hj4qx6oRhdbJh_WiRul_WvPEw',
+ 'isAutoComplete': false,
+ 'isCategorySet': true,
+ 'location': 'Surendranagar,Gujarat',
+ 'phoneNo': null,
+ 'profilePictureUrl': '/assets/images/default-avatar-small.png',
+ 'tags': [
+
+ ],
+ 'totalFriends': 0,
+ 'userId': '4kFa6HRvP5OhvYXsH9mEsRrXj4o2'
+ },
+ {
+ 'androidPushTokens': [
+ {
+ 'online': false,
+ 'token': 'ct7vhZOa__U:APA91bFCVEncCZg__c0P8kZo2k0WfCB_nVUds4sViaQiyPmUX7VUf29vfKUEQ4jRQ5BRq9BMRNdZDrVIVgMH-fGB6f1AEXXca4TAjPOGoaFVjKMA7952BMuaLy4-Z9-y0EC76abGDPsJ'
+ }
+ ],
+ 'authState': null,
+ 'bulkUploadPermissionStatus': 'false',
+ 'bulkUploadPermissionStatusUpdateTime': 1588266851711,
+ 'croppedImageUrl': '',
+ 'originalImageUrl': '',
+ 'imageType': '',
+ 'gamePlayed': [],
+ 'captured': 'web',
+ 'categoryIds': [
+ 2,
+ 8,
+ 3,
+ 4,
+ 5,
+ 9,
+ 7
+ ],
+ 'displayName': 'Priyanka 124',
+ 'email': 'priyankamavani99+124@gmail.com',
+ 'idToken': 'eyJhbGciOiJSUzI1NiIsImtpZCI6Ijg4ODQ4YjVhZmYyZDUyMDEzMzFhNTQ3ZDE5MDZlNWFhZGY2NTEzYzgiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZS5jb20vcndhLXRyaXZpYS1kZXYtZTU3ZmMiLCJhdWQiOiJyd2EtdHJpdmlhLWRldi1lNTdmYyIsImF1dGhfdGltZSI6MTU4NzEyMTIwNiwidXNlcl9pZCI6IjRrRmE2SFJ2UDVPaHZZWHNIOW1Fc1JyWGo0bzIiLCJzdWIiOiI0a0ZhNkhSdlA1T2h2WVhzSDltRXNSclhqNG8yIiwiaWF0IjoxNTg4MjY0OTIzLCJleHAiOjE1ODgyNjg1MjMsImVtYWlsIjoicHJpeWFua2FtYXZhbmk5OSsxMjRAZ21haWwuY29tIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJmaXJlYmFzZSI6eyJpZGVudGl0aWVzIjp7ImVtYWlsIjpbInByaXlhbmthbWF2YW5pOTkrMTI0QGdtYWlsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6InBhc3N3b3JkIn19.PYorEbISiEgg728CNYxvFcJU4PxCvts50IoumdTN39xF9yKQl0t1rZt8CkNjPu9lP_eZcvbxHPET583LhqiVR6E-HjxMACV23tTrSpJlEfi3FTcG4BlELDNOIt529Il0xYlDJaLCTnT8D3uJV79dBpyFYQ9tP3RRXxTdJv4HZXYbjiXLmuK3tOwLiLzI_ZWgFDfpYHqg17bJKTtfjTC7blorhpZYfDDrc6BH4y3aJaN84CJtIhTeN4fNePjEBRWDWa3hNZs2lDik5eslRWXP8HR09k4c251UKw1vcehZm-ISzYSVuYHCMoK9eDjB2Hj4qx6oRhdbJh_WiRul_WvPEw',
+ 'isAutoComplete': false,
+ 'isCategorySet': true,
+ 'location': 'Surendranagar,Gujarat',
+ 'phoneNo': null,
+ 'profilePictureUrl': '/assets/images/default-avatar-small.png',
+ 'tags': [
+
+ ],
+ 'totalFriends': 0,
+ 'userId': 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1'
+ },
+ {
+ 'androidPushTokens': [
+ {
+ 'online': false,
+ 'token': 'ct7vhZOa__U:APA91bFCVEncCZg__c0P8kZo2k0WfCB_nVUds4sViaQiyPmUX7VUf29vfKUEQ4jRQ5BRq9BMRNdZDrVIVgMH-fGB6f1AEXXca4TAjPOGoaFVjKMA7952BMuaLy4-Z9-y0EC76abGDPsJ'
+ }
+ ],
+ 'authState': null,
+ 'bulkUploadPermissionStatus': 'false',
+ 'bulkUploadPermissionStatusUpdateTime' : 1588266851711,
+ 'croppedImageUrl': '',
+ 'originalImageUrl': '',
+ 'imageType': '',
+ 'gamePlayed': [],
+ 'captured': 'web',
+ 'categoryIds': [
+ 2,
+ 8,
+ 3,
+ 4,
+ 5,
+ 9,
+ 7
+ ],
+ 'displayName': 'test',
+ 'email': 'test@test.com',
+ 'idToken': 'eyJhbGciOiJSUzI1NiIsImtpZCI6Ijg4ODQ4YjVhZmYyZDUyMDEzMzFhNTQ3ZDE5MDZlNWFhZGY2NTEzYzgiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZS5jb20vcndhLXRyaXZpYS1kZXYtZTU3ZmMiLCJhdWQiOiJyd2EtdHJpdmlhLWRldi1lNTdmYyIsImF1dGhfdGltZSI6MTU4NzEyMTIwNiwidXNlcl9pZCI6IjRrRmE2SFJ2UDVPaHZZWHNIOW1Fc1JyWGo0bzIiLCJzdWIiOiI0a0ZhNkhSdlA1T2h2WVhzSDltRXNSclhqNG8yIiwiaWF0IjoxNTg4MjY0OTIzLCJleHAiOjE1ODgyNjg1MjMsImVtYWlsIjoicHJpeWFua2FtYXZhbmk5OSsxMjRAZ21haWwuY29tIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJmaXJlYmFzZSI6eyJpZGVudGl0aWVzIjp7ImVtYWlsIjpbInByaXlhbmthbWF2YW5pOTkrMTI0QGdtYWlsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6InBhc3N3b3JkIn19.PYorEbISiEgg728CNYxvFcJU4PxCvts50IoumdTN39xF9yKQl0t1rZt8CkNjPu9lP_eZcvbxHPET583LhqiVR6E-HjxMACV23tTrSpJlEfi3FTcG4BlELDNOIt529Il0xYlDJaLCTnT8D3uJV79dBpyFYQ9tP3RRXxTdJv4HZXYbjiXLmuK3tOwLiLzI_ZWgFDfpYHqg17bJKTtfjTC7blorhpZYfDDrc6BH4y3aJaN84CJtIhTeN4fNePjEBRWDWa3hNZs2lDik5eslRWXP8HR09k4c251UKw1vcehZm-ISzYSVuYHCMoK9eDjB2Hj4qx6oRhdbJh_WiRul_WvPEw',
+ 'isAutoComplete': false,
+ 'isCategorySet': true,
+ 'location': 'Ahmedabad,Gujarat',
+ 'phoneNo': null,
+ 'profilePictureUrl': '/assets/images/default-avatar-small.png',
+ 'tags': [
+ ],
+ 'totalFriends': 0,
+ 'userId': 'yP7sLu5TmYRUO9YT4tWrYLAqxSz1'
+ }
+];