jspsych 6.2.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/README.md +43 -29
  2. package/css/jspsych.css +39 -39
  3. package/dist/JsPsych.d.ts +112 -0
  4. package/dist/TimelineNode.d.ts +34 -0
  5. package/dist/index.browser.js +3164 -0
  6. package/dist/index.browser.js.map +1 -0
  7. package/dist/index.browser.min.js +2 -0
  8. package/dist/index.browser.min.js.map +1 -0
  9. package/dist/index.cjs +3158 -0
  10. package/dist/index.cjs.map +1 -0
  11. package/dist/index.d.ts +11 -0
  12. package/dist/index.js +3152 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/migration.d.ts +3 -0
  15. package/dist/modules/data/DataCollection.d.ts +45 -0
  16. package/dist/modules/data/DataColumn.d.ts +15 -0
  17. package/dist/modules/data/index.d.ts +25 -0
  18. package/dist/modules/data/utils.d.ts +3 -0
  19. package/dist/modules/extensions.d.ts +22 -0
  20. package/dist/modules/plugin-api/HardwareAPI.d.ts +15 -0
  21. package/dist/modules/plugin-api/KeyboardListenerAPI.d.ts +34 -0
  22. package/dist/modules/plugin-api/MediaAPI.d.ts +27 -0
  23. package/dist/modules/plugin-api/SimulationAPI.d.ts +41 -0
  24. package/dist/modules/plugin-api/TimeoutAPI.d.ts +5 -0
  25. package/dist/modules/plugin-api/index.d.ts +8 -0
  26. package/dist/modules/plugins.d.ts +129 -0
  27. package/dist/modules/randomization.d.ts +35 -0
  28. package/dist/modules/turk.d.ts +40 -0
  29. package/dist/modules/utils.d.ts +7 -0
  30. package/package.json +32 -15
  31. package/src/JsPsych.ts +884 -0
  32. package/src/TimelineNode.ts +536 -0
  33. package/src/index.ts +71 -0
  34. package/src/migration.ts +37 -0
  35. package/src/modules/data/DataCollection.ts +198 -0
  36. package/src/modules/data/DataColumn.ts +86 -0
  37. package/src/modules/data/index.ts +174 -0
  38. package/src/modules/data/utils.ts +75 -0
  39. package/src/modules/extensions.ts +23 -0
  40. package/src/modules/plugin-api/HardwareAPI.ts +32 -0
  41. package/src/modules/plugin-api/KeyboardListenerAPI.ts +165 -0
  42. package/src/modules/plugin-api/MediaAPI.ts +337 -0
  43. package/src/modules/plugin-api/SimulationAPI.ts +181 -0
  44. package/src/modules/plugin-api/TimeoutAPI.ts +16 -0
  45. package/src/modules/plugin-api/index.ts +28 -0
  46. package/src/modules/plugins.ts +158 -0
  47. package/src/modules/randomization.ts +327 -0
  48. package/src/modules/turk.ts +99 -0
  49. package/src/modules/utils.ts +30 -0
  50. package/.github/workflows/jest.yml +0 -20
  51. package/code-of-conduct.md +0 -56
  52. package/contributors.md +0 -61
  53. package/docs/CNAME +0 -1
  54. package/docs/about/about.md +0 -18
  55. package/docs/about/contributing.md +0 -43
  56. package/docs/about/license.md +0 -25
  57. package/docs/about/support.md +0 -7
  58. package/docs/core_library/jspsych-core.md +0 -661
  59. package/docs/core_library/jspsych-data.md +0 -589
  60. package/docs/core_library/jspsych-pluginAPI.md +0 -510
  61. package/docs/core_library/jspsych-randomization.md +0 -397
  62. package/docs/core_library/jspsych-turk.md +0 -102
  63. package/docs/img/blue.png +0 -0
  64. package/docs/img/folder-setup.png +0 -0
  65. package/docs/img/folder-with-html.png +0 -0
  66. package/docs/img/githubreleases.jpg +0 -0
  67. package/docs/img/jspsych-favicon.png +0 -0
  68. package/docs/img/jspsych-logo-no-text-mono.svg +0 -493
  69. package/docs/img/jspsych-logo.jpg +0 -0
  70. package/docs/img/orange.png +0 -0
  71. package/docs/img/palmer_stim.png +0 -0
  72. package/docs/img/progress_bar.png +0 -0
  73. package/docs/img/visual_search_example.jpg +0 -0
  74. package/docs/index.md +0 -9
  75. package/docs/overview/browser-device-support.md +0 -35
  76. package/docs/overview/callbacks.md +0 -140
  77. package/docs/overview/data.md +0 -281
  78. package/docs/overview/exclude-browser.md +0 -32
  79. package/docs/overview/experiment-options.md +0 -121
  80. package/docs/overview/fullscreen.md +0 -36
  81. package/docs/overview/media-preloading.md +0 -91
  82. package/docs/overview/mturk.md +0 -77
  83. package/docs/overview/progress-bar.md +0 -110
  84. package/docs/overview/record-browser-interactions.md +0 -23
  85. package/docs/overview/running-experiments.md +0 -95
  86. package/docs/overview/timeline.md +0 -387
  87. package/docs/overview/trial.md +0 -142
  88. package/docs/plugins/creating-a-plugin.md +0 -79
  89. package/docs/plugins/jspsych-animation.md +0 -40
  90. package/docs/plugins/jspsych-audio-button-response.md +0 -60
  91. package/docs/plugins/jspsych-audio-keyboard-response.md +0 -58
  92. package/docs/plugins/jspsych-audio-slider-response.md +0 -53
  93. package/docs/plugins/jspsych-call-function.md +0 -81
  94. package/docs/plugins/jspsych-canvas-button-response.md +0 -66
  95. package/docs/plugins/jspsych-canvas-keyboard-response.md +0 -68
  96. package/docs/plugins/jspsych-canvas-slider-response.md +0 -89
  97. package/docs/plugins/jspsych-categorize-animation.md +0 -60
  98. package/docs/plugins/jspsych-categorize-html.md +0 -52
  99. package/docs/plugins/jspsych-categorize-image.md +0 -53
  100. package/docs/plugins/jspsych-cloze.md +0 -45
  101. package/docs/plugins/jspsych-external-html.md +0 -70
  102. package/docs/plugins/jspsych-free-sort.md +0 -55
  103. package/docs/plugins/jspsych-fullscreen.md +0 -57
  104. package/docs/plugins/jspsych-html-button-response.md +0 -42
  105. package/docs/plugins/jspsych-html-keyboard-response.md +0 -51
  106. package/docs/plugins/jspsych-html-slider-response.md +0 -45
  107. package/docs/plugins/jspsych-iat-html.md +0 -64
  108. package/docs/plugins/jspsych-iat-image.md +0 -64
  109. package/docs/plugins/jspsych-image-button-response.md +0 -46
  110. package/docs/plugins/jspsych-image-keyboard-response.md +0 -57
  111. package/docs/plugins/jspsych-image-slider-response.md +0 -52
  112. package/docs/plugins/jspsych-instructions.md +0 -58
  113. package/docs/plugins/jspsych-maxdiff.md +0 -42
  114. package/docs/plugins/jspsych-rdk.md +0 -119
  115. package/docs/plugins/jspsych-reconstruction.md +0 -48
  116. package/docs/plugins/jspsych-resize.md +0 -39
  117. package/docs/plugins/jspsych-same-different-html.md +0 -53
  118. package/docs/plugins/jspsych-same-different-image.md +0 -66
  119. package/docs/plugins/jspsych-serial-reaction-time-mouse.md +0 -50
  120. package/docs/plugins/jspsych-serial-reaction-time.md +0 -57
  121. package/docs/plugins/jspsych-survey-html-form.md +0 -50
  122. package/docs/plugins/jspsych-survey-likert.md +0 -70
  123. package/docs/plugins/jspsych-survey-multi-choice.md +0 -48
  124. package/docs/plugins/jspsych-survey-multi-select.md +0 -53
  125. package/docs/plugins/jspsych-survey-text.md +0 -63
  126. package/docs/plugins/jspsych-video-button-response.md +0 -52
  127. package/docs/plugins/jspsych-video-keyboard-response.md +0 -48
  128. package/docs/plugins/jspsych-video-slider-response.md +0 -58
  129. package/docs/plugins/jspsych-visual-search-circle.md +0 -52
  130. package/docs/plugins/jspsych-vsl-animate-occlusion.md +0 -55
  131. package/docs/plugins/jspsych-vsl-grid-scene.md +0 -62
  132. package/docs/plugins/overview.md +0 -111
  133. package/docs/tutorials/hello-world.md +0 -144
  134. package/docs/tutorials/rt-task.md +0 -1107
  135. package/examples/add-to-end-of-timeline.html +0 -32
  136. package/examples/conditional-and-loop-functions.html +0 -63
  137. package/examples/css/jquery-ui.css +0 -1225
  138. package/examples/data-add-properties.html +0 -40
  139. package/examples/data-as-function.html +0 -36
  140. package/examples/data-from-timeline.html +0 -45
  141. package/examples/data-from-url.html +0 -21
  142. package/examples/demo-flanker.html +0 -108
  143. package/examples/demo-simple-rt-task.html +0 -104
  144. package/examples/demos/demo_1.html +0 -29
  145. package/examples/demos/demo_2.html +0 -43
  146. package/examples/demos/demo_3.html +0 -58
  147. package/examples/display-element-to-embed-experiment.html +0 -73
  148. package/examples/end-active-node.html +0 -52
  149. package/examples/end-experiment.html +0 -43
  150. package/examples/exclusions.html +0 -32
  151. package/examples/external_html/simple_consent.html +0 -4
  152. package/examples/img/1.gif +0 -0
  153. package/examples/img/10.gif +0 -0
  154. package/examples/img/11.gif +0 -0
  155. package/examples/img/12.gif +0 -0
  156. package/examples/img/2.gif +0 -0
  157. package/examples/img/3.gif +0 -0
  158. package/examples/img/4.gif +0 -0
  159. package/examples/img/5.gif +0 -0
  160. package/examples/img/6.gif +0 -0
  161. package/examples/img/7.gif +0 -0
  162. package/examples/img/8.gif +0 -0
  163. package/examples/img/9.gif +0 -0
  164. package/examples/img/age/of1.jpg +0 -0
  165. package/examples/img/age/of2.jpg +0 -0
  166. package/examples/img/age/of3.jpg +0 -0
  167. package/examples/img/age/om1.jpg +0 -0
  168. package/examples/img/age/om2.jpg +0 -0
  169. package/examples/img/age/om3.jpg +0 -0
  170. package/examples/img/age/yf1.jpg +0 -0
  171. package/examples/img/age/yf4.jpg +0 -0
  172. package/examples/img/age/yf5.jpg +0 -0
  173. package/examples/img/age/ym2.jpg +0 -0
  174. package/examples/img/age/ym3.jpg +0 -0
  175. package/examples/img/age/ym5.jpg +0 -0
  176. package/examples/img/backwardN.gif +0 -0
  177. package/examples/img/blue.png +0 -0
  178. package/examples/img/con1.png +0 -0
  179. package/examples/img/con2.png +0 -0
  180. package/examples/img/fixation.gif +0 -0
  181. package/examples/img/happy_face_1.jpg +0 -0
  182. package/examples/img/happy_face_2.jpg +0 -0
  183. package/examples/img/happy_face_3.jpg +0 -0
  184. package/examples/img/happy_face_4.jpg +0 -0
  185. package/examples/img/inc1.png +0 -0
  186. package/examples/img/inc2.png +0 -0
  187. package/examples/img/normalN.gif +0 -0
  188. package/examples/img/orange.png +0 -0
  189. package/examples/img/redX.png +0 -0
  190. package/examples/img/ribbon.jpg +0 -0
  191. package/examples/img/sad_face_1.jpg +0 -0
  192. package/examples/img/sad_face_2.jpg +0 -0
  193. package/examples/img/sad_face_3.jpg +0 -0
  194. package/examples/img/sad_face_4.jpg +0 -0
  195. package/examples/js/snap.svg-min.js +0 -21
  196. package/examples/jspsych-RDK.html +0 -58
  197. package/examples/jspsych-animation.html +0 -33
  198. package/examples/jspsych-audio-button-response.html +0 -52
  199. package/examples/jspsych-audio-keyboard-response.html +0 -62
  200. package/examples/jspsych-audio-slider-response.html +0 -55
  201. package/examples/jspsych-call-function.html +0 -32
  202. package/examples/jspsych-canvas-button-response.html +0 -95
  203. package/examples/jspsych-canvas-keyboard-response.html +0 -78
  204. package/examples/jspsych-canvas-slider-response.html +0 -67
  205. package/examples/jspsych-categorize-animation.html +0 -46
  206. package/examples/jspsych-categorize-html.html +0 -38
  207. package/examples/jspsych-categorize-image.html +0 -38
  208. package/examples/jspsych-cloze.html +0 -42
  209. package/examples/jspsych-free-sort.html +0 -97
  210. package/examples/jspsych-fullscreen.html +0 -44
  211. package/examples/jspsych-html-button-response.html +0 -46
  212. package/examples/jspsych-html-keyboard-response.html +0 -42
  213. package/examples/jspsych-html-slider-response.html +0 -53
  214. package/examples/jspsych-iat.html +0 -510
  215. package/examples/jspsych-image-button-response.html +0 -84
  216. package/examples/jspsych-image-keyboard-response.html +0 -78
  217. package/examples/jspsych-image-slider-response.html +0 -76
  218. package/examples/jspsych-instructions.html +0 -37
  219. package/examples/jspsych-maxdiff.html +0 -33
  220. package/examples/jspsych-reconstruction.html +0 -43
  221. package/examples/jspsych-resize.html +0 -34
  222. package/examples/jspsych-same-different-html.html +0 -28
  223. package/examples/jspsych-same-different-image.html +0 -33
  224. package/examples/jspsych-serial-reaction-time-mouse.html +0 -98
  225. package/examples/jspsych-serial-reaction-time.html +0 -54
  226. package/examples/jspsych-survey-html-form.html +0 -33
  227. package/examples/jspsych-survey-likert.html +0 -42
  228. package/examples/jspsych-survey-multi-choice.html +0 -40
  229. package/examples/jspsych-survey-multi-select.html +0 -42
  230. package/examples/jspsych-survey-text.html +0 -34
  231. package/examples/jspsych-video-button-response.html +0 -57
  232. package/examples/jspsych-video-keyboard-response.html +0 -53
  233. package/examples/jspsych-video-slider-response.html +0 -55
  234. package/examples/jspsych-visual-search-circle.html +0 -58
  235. package/examples/jspsych-vsl-animate-occlusion.html +0 -29
  236. package/examples/jspsych-vsl-grid-scene.html +0 -41
  237. package/examples/lexical-decision.html +0 -132
  238. package/examples/manual-preloading.html +0 -53
  239. package/examples/pause-unpause.html +0 -33
  240. package/examples/progress-bar.html +0 -62
  241. package/examples/sound/hammer.mp3 +0 -0
  242. package/examples/sound/sound.mp3 +0 -0
  243. package/examples/sound/speech_blue.mp3 +0 -0
  244. package/examples/sound/speech_green.mp3 +0 -0
  245. package/examples/sound/speech_joke.mp3 +0 -0
  246. package/examples/sound/speech_red.mp3 +0 -0
  247. package/examples/sound/tone.mp3 +0 -0
  248. package/examples/timeline-variables-sampling.html +0 -50
  249. package/examples/timeline-variables.html +0 -55
  250. package/examples/video/sample_video.mp4 +0 -0
  251. package/jspsych.js +0 -2796
  252. package/license.txt +0 -21
  253. package/mkdocs.yml +0 -104
  254. package/plugins/jspsych-animation.js +0 -189
  255. package/plugins/jspsych-audio-button-response.js +0 -247
  256. package/plugins/jspsych-audio-keyboard-response.js +0 -204
  257. package/plugins/jspsych-audio-slider-response.js +0 -262
  258. package/plugins/jspsych-call-function.js +0 -58
  259. package/plugins/jspsych-canvas-button-response.js +0 -199
  260. package/plugins/jspsych-canvas-keyboard-response.js +0 -155
  261. package/plugins/jspsych-canvas-slider-response.js +0 -207
  262. package/plugins/jspsych-categorize-animation.js +0 -266
  263. package/plugins/jspsych-categorize-html.js +0 -220
  264. package/plugins/jspsych-categorize-image.js +0 -222
  265. package/plugins/jspsych-cloze.js +0 -112
  266. package/plugins/jspsych-external-html.js +0 -112
  267. package/plugins/jspsych-free-sort.js +0 -444
  268. package/plugins/jspsych-fullscreen.js +0 -104
  269. package/plugins/jspsych-html-button-response.js +0 -188
  270. package/plugins/jspsych-html-keyboard-response.js +0 -149
  271. package/plugins/jspsych-html-slider-response.js +0 -202
  272. package/plugins/jspsych-iat-html.js +0 -284
  273. package/plugins/jspsych-iat-image.js +0 -286
  274. package/plugins/jspsych-image-button-response.js +0 -311
  275. package/plugins/jspsych-image-keyboard-response.js +0 -247
  276. package/plugins/jspsych-image-slider-response.js +0 -353
  277. package/plugins/jspsych-instructions.js +0 -237
  278. package/plugins/jspsych-maxdiff.js +0 -174
  279. package/plugins/jspsych-rdk.js +0 -1373
  280. package/plugins/jspsych-reconstruction.js +0 -134
  281. package/plugins/jspsych-resize.js +0 -166
  282. package/plugins/jspsych-same-different-html.js +0 -168
  283. package/plugins/jspsych-same-different-image.js +0 -169
  284. package/plugins/jspsych-serial-reaction-time-mouse.js +0 -213
  285. package/plugins/jspsych-serial-reaction-time.js +0 -247
  286. package/plugins/jspsych-survey-html-form.js +0 -171
  287. package/plugins/jspsych-survey-likert.js +0 -195
  288. package/plugins/jspsych-survey-multi-choice.js +0 -208
  289. package/plugins/jspsych-survey-multi-select.js +0 -232
  290. package/plugins/jspsych-survey-text.js +0 -185
  291. package/plugins/jspsych-video-button-response.js +0 -320
  292. package/plugins/jspsych-video-keyboard-response.js +0 -279
  293. package/plugins/jspsych-video-slider-response.js +0 -351
  294. package/plugins/jspsych-visual-search-circle.js +0 -259
  295. package/plugins/jspsych-vsl-animate-occlusion.js +0 -196
  296. package/plugins/jspsych-vsl-grid-scene.js +0 -103
  297. package/plugins/template/jspsych-plugin-template.js +0 -35
  298. package/tests/README.md +0 -7
  299. package/tests/jsPsych/default-iti.test.js +0 -51
  300. package/tests/jsPsych/default-parameters.test.js +0 -58
  301. package/tests/jsPsych/endexperiment.test.js +0 -49
  302. package/tests/jsPsych/events.test.js +0 -369
  303. package/tests/jsPsych/init.test.js +0 -48
  304. package/tests/jsPsych/loads.test.js +0 -7
  305. package/tests/jsPsych/min-rt.test.js +0 -58
  306. package/tests/jsPsych/progressbar.test.js +0 -202
  307. package/tests/jsPsych/timeline-variables.test.js +0 -254
  308. package/tests/jsPsych/timelines.test.js +0 -498
  309. package/tests/jsPsych.data/datacollection.test.js +0 -116
  310. package/tests/jsPsych.data/datacolumn.test.js +0 -50
  311. package/tests/jsPsych.data/datamodule.test.js +0 -152
  312. package/tests/jsPsych.data/dataparameter.test.js +0 -251
  313. package/tests/jsPsych.data/interactions.test.js +0 -109
  314. package/tests/jsPsych.pluginAPI/pluginapi.test.js +0 -144
  315. package/tests/jsPsych.randomization/randomziation.test.js +0 -27
  316. package/tests/jsPsych.utils/utils.test.js +0 -58
  317. package/tests/media/blue.png +0 -0
  318. package/tests/media/orange.png +0 -0
  319. package/tests/media/sample_video.mp4 +0 -0
  320. package/tests/media/sound.mp3 +0 -0
  321. package/tests/plugins/plugin-animation.test.js +0 -35
  322. package/tests/plugins/plugin-audio-button-response.test.js +0 -15
  323. package/tests/plugins/plugin-audio-keyboard-response.test.js +0 -15
  324. package/tests/plugins/plugin-audio-slider-response.test.js +0 -15
  325. package/tests/plugins/plugin-call-function.test.js +0 -49
  326. package/tests/plugins/plugin-categorize-animation.test.js +0 -274
  327. package/tests/plugins/plugin-categorize-html.test.js +0 -17
  328. package/tests/plugins/plugin-categorize-image.test.js +0 -17
  329. package/tests/plugins/plugin-cloze.test.js +0 -140
  330. package/tests/plugins/plugin-free-sort.test.js +0 -112
  331. package/tests/plugins/plugin-fullscreen.test.js +0 -41
  332. package/tests/plugins/plugin-html-button-response.test.js +0 -161
  333. package/tests/plugins/plugin-html-keyboard-response.test.js +0 -139
  334. package/tests/plugins/plugin-html-slider-response.test.js +0 -155
  335. package/tests/plugins/plugin-iat-html.test.js +0 -328
  336. package/tests/plugins/plugin-iat-image.test.js +0 -308
  337. package/tests/plugins/plugin-image-button-response.test.js +0 -183
  338. package/tests/plugins/plugin-image-keyboard-response.test.js +0 -154
  339. package/tests/plugins/plugin-image-slider-response.test.js +0 -183
  340. package/tests/plugins/plugin-instructions.test.js +0 -66
  341. package/tests/plugins/plugin-maxdiff.test.js +0 -39
  342. package/tests/plugins/plugin-rdk.test.js +0 -17
  343. package/tests/plugins/plugin-reconstruction.test.js +0 -16
  344. package/tests/plugins/plugin-resize.test.js +0 -16
  345. package/tests/plugins/plugin-same-different-html.test.js +0 -17
  346. package/tests/plugins/plugin-same-different-image.test.js +0 -17
  347. package/tests/plugins/plugin-serial-reaction-time-mouse.test.js +0 -42
  348. package/tests/plugins/plugin-serial-reaction-time.test.js +0 -69
  349. package/tests/plugins/plugin-survey-html-form.test.js +0 -44
  350. package/tests/plugins/plugin-survey-likert.test.js +0 -48
  351. package/tests/plugins/plugin-survey-multi-choice.test.js +0 -48
  352. package/tests/plugins/plugin-survey-multi-select.test.js +0 -72
  353. package/tests/plugins/plugin-survey-text.test.js +0 -115
  354. package/tests/plugins/plugin-video-button-response.test.js +0 -35
  355. package/tests/plugins/plugin-video-keyboard-response.test.js +0 -35
  356. package/tests/plugins/plugin-video-slider-response.test.js +0 -34
  357. package/tests/plugins/plugin-visual-search-circle.test.js +0 -16
  358. package/tests/plugins/plugin-vsl-animate-occlusion.test.js +0 -16
  359. package/tests/plugins/plugin-vsl-grid-scene.test.js +0 -16
  360. package/tests/testing-utils.js +0 -13
@@ -1,328 +0,0 @@
1
- const root = '../../';
2
-
3
- jest.useFakeTimers();
4
-
5
- describe('iat-html plugin', function(){
6
-
7
- beforeEach(function(){
8
- require(root + 'jspsych.js');
9
- require(root + 'plugins/jspsych-iat-html.js');
10
- });
11
-
12
- test('loads correctly', function(){
13
- expect(typeof window.jsPsych.plugins['iat-html']).not.toBe('undefined');
14
- });
15
-
16
- test('displays image by default', function(){
17
- var trial = {
18
- type: 'iat-html',
19
- stimulus: '<p>dogs</p>',
20
- response_ends_trial: true,
21
- display_feedback: false,
22
- left_category_key: 'f',
23
- right_category_key: 'j',
24
- left_category_label: ['FRIENDLY'],
25
- right_category_label: ['UNFRIENDLY'],
26
- stim_key_association: 'left',
27
- trial_duration: 500
28
- }
29
-
30
- jsPsych.init({
31
- timeline: [trial]
32
- });
33
-
34
- expect(jsPsych.getDisplayElement().innerHTML).toMatch('<p id=\"jspsych-iat-stim\"></p><p>dogs</p><p></p>');
35
-
36
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode: 70}));
37
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode: 70}));
38
-
39
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
40
- });
41
-
42
- test('display should only clear when left key is pressed', function(){
43
- var trial = {
44
- type: 'iat-html',
45
- stimulus: '<p>hello</p>',
46
- left_category_key: 'f',
47
- left_category_label: ['FRIENDLY'],
48
- stim_key_association: 'left',
49
- key_to_move_forward: ['f']
50
- }
51
-
52
- jsPsych.init({
53
- timeline: [trial]
54
- });
55
-
56
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode: 32}));
57
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode: 32}));
58
-
59
- expect(jsPsych.getDisplayElement().innerHTML).toMatch('<p id=\"jspsych-iat-stim\"></p><p>hello</p><p></p>');
60
-
61
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode: 70}));
62
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode: 70}));
63
-
64
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
65
- });
66
-
67
- test('display should only clear when right key is pressed', function(){
68
- var trial = {
69
- type: 'iat-html',
70
- stimulus: '<p>hello</p>',
71
- right_category_key: 'j',
72
- right_category_label: ['UNFRIENDLY'],
73
- stim_key_association: 'right',
74
- key_to_move_forward: ['j']
75
- }
76
-
77
- jsPsych.init({
78
- timeline: [trial]
79
- });
80
-
81
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode: 32}));
82
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode: 32}));
83
-
84
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<p id=\"jspsych-iat-stim\"></p><p>hello</p><p></p>'));
85
-
86
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode: 74}));
87
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode: 74}));
88
-
89
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
90
-
91
- });
92
-
93
- test('display should clear when any key is pressed', function(){
94
- var trial = {
95
- type: 'iat-html',
96
- stimulus: '<p>hello</p>',
97
- left_category_key: 'f',
98
- right_category_key: 'j',
99
- left_category_label: ['FRIENDLY'],
100
- right_category_label: ['UNFRIENDLY'],
101
- stim_key_association: 'right',
102
- key_to_move_forward: [jsPsych.ALL_KEYS]
103
- }
104
-
105
- jsPsych.init({
106
- timeline: [trial]
107
- });
108
-
109
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode: 70}));
110
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode: 70}));
111
-
112
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<p id=\"jspsych-iat-stim\" class=\" responded\"></p><p>hello</p>'));
113
-
114
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode: 32}));
115
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode: 32}));
116
-
117
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
118
-
119
- });
120
-
121
- test('display should clear only when "other key" is pressed', function(){
122
- var trial = {
123
- type: 'iat-html',
124
- stimulus: '<p>hello</p>',
125
- left_category_key: 'f',
126
- right_category_key: 'j',
127
- left_category_label: ['FRIENDLY'],
128
- right_category_label: ['UNFRIENDLY'],
129
- stim_key_association: 'left',
130
- key_to_move_forward: ['other key']
131
- }
132
-
133
- jsPsych.init({
134
- timeline: [trial]
135
- });
136
-
137
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode: 74}));
138
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode: 74}));
139
-
140
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<p id=\"jspsych-iat-stim\" class=\" responded\"></p><p>hello</p>'));
141
-
142
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode: 70}));
143
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode: 70}));
144
-
145
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
146
-
147
- });
148
-
149
-
150
- test('labels should be with assigned key characters', function(){
151
- var trial = {
152
- type: 'iat-html',
153
- stimulus: '<p>hello</p>',
154
- left_category_key: 'f',
155
- right_category_key: 'j',
156
- left_category_label: ['FRIENDLY'],
157
- right_category_label: ['UNFRIENDLY'],
158
- stim_key_association: 'left'
159
- }
160
-
161
- jsPsych.init({
162
- timeline: [trial]
163
- });
164
-
165
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<p>Press j for:<br> <b>UNFRIENDLY</b>'));
166
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<p>Press f for:<br> <b>FRIENDLY</b>'));
167
-
168
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode:70}));
169
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode:70}));
170
-
171
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
172
-
173
- });
174
-
175
- test('should display wrong image when wrong key is pressed', function(){
176
- var trial = {
177
- type: 'iat-html',
178
- stimulus: '<p>hello</p>',
179
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
180
- display_feedback: true,
181
- left_category_key: 'f',
182
- right_category_key: 'j',
183
- left_category_label: ['FRIENDLY'],
184
- right_category_label: ['UNFRIENDLY'],
185
- stim_key_association: 'left',
186
- key_to_move_forward: [jsPsych.ALL_KEYS],
187
- response_ends_trial: true
188
- }
189
-
190
- jsPsych.init({
191
- timeline: [trial]
192
- });
193
-
194
- expect(jsPsych.getDisplayElement().querySelector('#wrongImgContainer').style.visibility).toBe('hidden');
195
-
196
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode:74}));
197
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode:74}));
198
-
199
- expect(jsPsych.getDisplayElement().querySelector('#wrongImgContainer').style.visibility).toBe('visible');
200
-
201
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode: 70}));
202
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode: 70}));
203
-
204
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
205
- });
206
-
207
- test('trial duration should end trial after time has elapsed; only if display_feedback is false', function(){
208
-
209
- var trial = {
210
- type: 'iat-html',
211
- stimulus: '<p>hello</p>',
212
- display_feedback: false,
213
- response_ends_trial: false,
214
- trial_duration: 500
215
- }
216
-
217
- jsPsych.init({
218
- timeline: [trial]
219
- });
220
-
221
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<p id=\"jspsych-iat-stim\"></p><p>hello</p>'));
222
-
223
- jest.runAllTimers();
224
-
225
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
226
-
227
- });
228
-
229
- test('trial should not end when response_ends_trial is false and stimulus should get responded class', function(){
230
- var trial = {
231
- type: 'iat-html',
232
- stimulus: '<p>hello</p>',
233
- response_ends_trial: false,
234
- display_feedback: false,
235
- left_category_key: 'f',
236
- right_category_key: 'j',
237
- left_category_label: ['FRIENDLY'],
238
- right_category_label: ['UNFRIENDLY'],
239
- stim_key_association: 'left',
240
- trial_duration: 500
241
- }
242
-
243
- jsPsych.init({
244
- timeline: [trial]
245
- });
246
-
247
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode: 70}));
248
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode: 70}));
249
-
250
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<p id=\"jspsych-iat-stim\" class=\" responded\"></p><p>hello</p>'));
251
-
252
- jest.runAllTimers();
253
- });
254
-
255
- test('should accept functions as parameters(trial_duration in use, response ends trial false)', function(){
256
-
257
- var trial = {
258
- type: 'iat-html',
259
- stimulus: function(){ return '<p>hello</p>'; },
260
- display_feedback: function(){ return true; },
261
- html_when_wrong: function(){ return '<span style="color: red; font-size: 80px">X</span>'; },
262
- left_category_key: function(){ return 'e'; },
263
- right_category_key: function(){ return 'i'; },
264
- left_category_label: function(){return ['FRIENDLY']; },
265
- right_category_label: function(){return ['UNFRIENDLY']; },
266
- stim_key_association: function(){return 'left'; },
267
- trial_duration: function(){ return 1000; },
268
- response_ends_trial: function(){ return false; }
269
- }
270
-
271
- jsPsych.init({
272
- timeline: [trial]
273
- });
274
-
275
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<p id=\"jspsych-iat-stim\"></p><p>hello</p><p></p>'));
276
-
277
- jest.runTimersToTime(500);
278
-
279
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode: 73}));
280
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode: 73}));
281
-
282
- expect(jsPsych.getDisplayElement().querySelector('#wrongImgContainer').style.visibility).toBe('visible');
283
-
284
- jest.runTimersToTime(1100);
285
-
286
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
287
- });
288
-
289
- test('should accept functions as parameters(trial_duration is not in use)', function(){
290
-
291
- var trial = {
292
- type: 'iat-html',
293
- stimulus: function(){ return '<p>hello</p>'; },
294
- display_feedback: function(){ return true; },
295
- html_when_wrong: function(){ return '<span style="color: red; font-size: 80px">X</span>'; },
296
- left_category_key: function(){ return 'e'; },
297
- right_category_key: function(){ return 'i'; },
298
- left_category_label: function(){return ['FRIENDLY']; },
299
- right_category_label: function(){return ['UNFRIENDLY']; },
300
- stim_key_association: function(){return 'left'; },
301
- key_to_move_forward: function(){return [jsPsych.ALL_KEYS]; },
302
- trial_duration: function(){ return 1000; },
303
- response_ends_trial: function(){ return true; }
304
- }
305
-
306
- jsPsych.init({
307
- timeline: [trial]
308
- });
309
-
310
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<p id=\"jspsych-iat-stim\"></p><p>hello</p>'));
311
-
312
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode: 73}));
313
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode: 73}));
314
-
315
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<p id=\"jspsych-iat-stim\" class=\" responded\"></p><p>hello</p>'));
316
-
317
- jest.runTimersToTime(1000);
318
-
319
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<p id=\"jspsych-iat-stim\" class=\" responded\"></p><p>hello</p>'));
320
-
321
- jest.runTimersToTime(1500);
322
-
323
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keydown', {keyCode: 69}));
324
- document.querySelector('.jspsych-display-element').dispatchEvent(new KeyboardEvent('keyup', {keyCode: 69}));
325
-
326
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
327
- });
328
- });
@@ -1,308 +0,0 @@
1
- const root = '../../';
2
- const utils = require('../testing-utils.js');
3
-
4
- jest.useFakeTimers();
5
-
6
- describe('iat-image plugin', function(){
7
-
8
- beforeEach(function(){
9
- require(root + 'jspsych.js');
10
- require(root + 'plugins/jspsych-iat-image.js');
11
- });
12
-
13
- test('loads correctly', function(){
14
- expect(typeof window.jsPsych.plugins['iat-image']).not.toBe('undefined');
15
- });
16
-
17
- test('displays image by default', function(){
18
- var trial = {
19
- type: 'iat-image',
20
- stimulus: '../media/blue.png',
21
- response_ends_trial: true,
22
- display_feedback: false,
23
- left_category_key: 'f',
24
- right_category_key: 'j',
25
- left_category_label: ['FRIENDLY'],
26
- right_category_label: ['UNFRIENDLY'],
27
- stim_key_association: 'left',
28
- trial_duration: 500
29
- }
30
-
31
- jsPsych.init({
32
- timeline: [trial],
33
- auto_preload: false
34
- });
35
-
36
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(/blue.png/);
37
-
38
- utils.pressKey(70);
39
-
40
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
41
- });
42
-
43
- test('display should only clear when left key is pressed', function(){
44
- var trial = {
45
- type: 'iat-image',
46
- stimulus: '../media/blue.png',
47
- left_category_key: 'f',
48
- left_category_label: ['FRIENDLY'],
49
- stim_key_association: 'left',
50
- key_to_move_forward: ['f']
51
- }
52
-
53
- jsPsych.init({
54
- timeline: [trial],
55
- auto_preload: false
56
- });
57
-
58
- utils.pressKey(74);
59
- expect(jsPsych.getDisplayElement().innerHTML).toMatch('<img src="../media/blue.png" id="jspsych-iat-stim">');
60
-
61
- utils.pressKey(70);
62
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
63
- });
64
-
65
- test('display should only clear when right key is pressed', function(){
66
- var trial = {
67
- type: 'iat-image',
68
- stimulus: '../media/blue.png',
69
- right_category_key: 'j',
70
- right_category_label: ['UNFRIENDLY'],
71
- stim_key_association: 'right',
72
- key_to_move_forward: ['j']
73
- }
74
-
75
- jsPsych.init({
76
- timeline: [trial],
77
- auto_preload: false
78
- });
79
-
80
- utils.pressKey(70);
81
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<img src=\"../media/blue.png\" id=\"jspsych-iat-stim\">'));
82
-
83
- utils.pressKey(74);
84
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
85
-
86
- });
87
-
88
- test('display should clear when any key is pressed', function(){
89
- var trial = {
90
- type: 'iat-image',
91
- stimulus: '../media/blue.png',
92
- left_category_key: 'f',
93
- right_category_key: 'j',
94
- left_category_label: ['FRIENDLY'],
95
- right_category_label: ['UNFRIENDLY'],
96
- stim_key_association: 'right',
97
- key_to_move_forward: [jsPsych.ALL_KEYS]
98
- }
99
-
100
- jsPsych.init({
101
- timeline: [trial],
102
- auto_preload: false
103
- });
104
-
105
- utils.pressKey(70);
106
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<img src=\"../media/blue.png\" id=\"jspsych-iat-stim\" class=\" responded\">'));
107
-
108
- utils.pressKey(32);
109
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
110
-
111
- });
112
-
113
- test('display should clear only when "other key" is pressed', function(){
114
- var trial = {
115
- type: 'iat-image',
116
- stimulus: '../media/blue.png',
117
- left_category_key: 'f',
118
- right_category_key: 'j',
119
- left_category_label: ['FRIENDLY'],
120
- right_category_label: ['UNFRIENDLY'],
121
- stim_key_association: 'left',
122
- key_to_move_forward: ['other key']
123
- }
124
-
125
- jsPsych.init({
126
- timeline: [trial],
127
- auto_preload: false
128
- });
129
-
130
- utils.pressKey(74);
131
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<img src=\"../media/blue.png\" id=\"jspsych-iat-stim\" class=\" responded\">'));
132
-
133
- utils.pressKey(70);
134
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
135
-
136
- });
137
-
138
-
139
- test('labels should be with assigned key characters', function(){
140
- var trial = {
141
- type: 'iat-image',
142
- stimulus: '../media/blue.png',
143
- left_category_key: 'f',
144
- right_category_key: 'j',
145
- left_category_label: ['FRIENDLY'],
146
- right_category_label: ['UNFRIENDLY'],
147
- stim_key_association: 'left'
148
- }
149
-
150
- jsPsych.init({
151
- timeline: [trial],
152
- auto_preload: false
153
- });
154
-
155
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<p>Press j for:<br> <b>UNFRIENDLY</b>'));
156
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<p>Press f for:<br> <b>FRIENDLY</b>'));
157
-
158
- utils.pressKey(70);
159
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
160
-
161
- });
162
-
163
- test('should display wrong image when wrong key is pressed', function(){
164
- var trial = {
165
- type: 'iat-image',
166
- stimulus: '../media/blue.png',
167
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
168
- display_feedback: true,
169
- left_category_key: 'f',
170
- right_category_key: 'j',
171
- left_category_label: ['FRIENDLY'],
172
- right_category_label: ['UNFRIENDLY'],
173
- stim_key_association: 'left',
174
- key_to_move_forward: [jsPsych.ALL_KEYS],
175
- response_ends_trial: true
176
- }
177
-
178
- jsPsych.init({
179
- timeline: [trial],
180
- auto_preload: false
181
- });
182
-
183
- expect(jsPsych.getDisplayElement().querySelector('#wrongImgContainer').style.visibility).toBe('hidden');
184
- utils.pressKey(74);
185
- expect(jsPsych.getDisplayElement().querySelector('#wrongImgContainer').style.visibility).toBe('visible');
186
-
187
- utils.pressKey(70);
188
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
189
- });
190
-
191
- test('trial_duration should end trial after time has elapsed; only if display_feedback is false', function(){
192
-
193
- var trial = {
194
- type: 'iat-image',
195
- stimulus: '../media/blue.png',
196
- display_feedback: false,
197
- response_ends_trial: false,
198
- trial_duration: 500
199
- }
200
-
201
- jsPsych.init({
202
- timeline: [trial],
203
- auto_preload: false
204
- });
205
-
206
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<img src=\"../media/blue.png\" id=\"jspsych-iat-stim\">'));
207
-
208
- jest.runAllTimers();
209
-
210
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
211
-
212
- });
213
-
214
- test('trial should not end when response_ends_trial is false and stimulus should get responded class', function(){
215
- var trial = {
216
- type: 'iat-image',
217
- stimulus: '../media/blue.png',
218
- response_ends_trial: false,
219
- display_feedback: false,
220
- left_category_key: 'f',
221
- right_category_key: 'j',
222
- left_category_label: ['FRIENDLY'],
223
- right_category_label: ['UNFRIENDLY'],
224
- stim_key_association: 'left',
225
- trial_duration: 500
226
- }
227
-
228
- jsPsych.init({
229
- timeline: [trial],
230
- auto_preload: false
231
- });
232
-
233
- utils.pressKey(70);
234
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<img src=\"../media/blue.png\" id=\"jspsych-iat-stim\" class=\" responded\">'));
235
-
236
- jest.runAllTimers();
237
- });
238
-
239
- test('should accept functions as parameters(trial_duration in use, response ends trial false)', function(){
240
-
241
- var trial = {
242
- type: 'iat-image',
243
- stimulus: function(){ return '../media/blue.png'; },
244
- display_feedback: function(){ return true; },
245
- html_when_wrong: function(){ return '<span style="color: red; font-size: 80px">X</span>'; },
246
- left_category_key: function(){ return 'e'; },
247
- right_category_key: function(){ return 'i'; },
248
- left_category_label: function(){return ['FRIENDLY']; },
249
- right_category_label: function(){return ['UNFRIENDLY']; },
250
- stim_key_association: function(){return 'left'; },
251
- trial_duration: function(){ return 1000; },
252
- response_ends_trial: function(){ return false; }
253
- }
254
-
255
- jsPsych.init({
256
- timeline: [trial],
257
- auto_preload: false
258
- });
259
-
260
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<img src="../media/blue.png" id=\"jspsych-iat-stim\">'));
261
-
262
- jest.runTimersToTime(500);
263
-
264
- utils.pressKey(73);
265
- expect(jsPsych.getDisplayElement().querySelector('#wrongImgContainer').style.visibility).toBe('visible');
266
-
267
- jest.runTimersToTime(1100);
268
-
269
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
270
- });
271
-
272
- test('should accept functions as parameters(trial_duration is not in use)', function(){
273
-
274
- var trial = {
275
- type: 'iat-image',
276
- stimulus: function(){ return '../media/blue.png'; },
277
- display_feedback: function(){ return true; },
278
- html_when_wrong: function(){ return '<span style="color: red; font-size: 80px">X</span>'; },
279
- left_category_key: function(){ return 'e'; },
280
- right_category_key: function(){ return 'i'; },
281
- left_category_label: function(){return ['FRIENDLY']; },
282
- right_category_label: function(){return ['UNFRIENDLY']; },
283
- stim_key_association: function(){return 'left'; },
284
- key_to_move_forward: function(){return [jsPsych.ALL_KEYS]; },
285
- trial_duration: function(){ return 1000; },
286
- response_ends_trial: function(){ return true; }
287
- }
288
-
289
- jsPsych.init({
290
- timeline: [trial],
291
- auto_preload: false
292
- });
293
-
294
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<img src="../media/blue.png" id=\"jspsych-iat-stim\">'));
295
-
296
- utils.pressKey(73);
297
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<img src=\"../media/blue.png\" id=\"jspsych-iat-stim\" class=\" responded\">'));
298
-
299
- jest.runTimersToTime(1000);
300
-
301
- expect(jsPsych.getDisplayElement().innerHTML).toMatch(new RegExp('<img src=\"../media/blue.png\" id=\"jspsych-iat-stim\" class=\" responded\">'));
302
-
303
- jest.runTimersToTime(1500);
304
-
305
- utils.pressKey(69);
306
- expect(jsPsych.getDisplayElement().innerHTML).toBe("");
307
- });
308
- });