DataPipe testbed

Test experiments for DataPipe, for checking a deployment end to end: one written with jsPsych and @jspsych-contrib/plugin-pipe (including incremental upload), one in plain JavaScript with no libraries at all. They send real data to a real DataPipe experiment, so point them at a test deployment and a test experiment.

jsPsych page
Plain JavaScript page

What to check

Create an experiment on the deployment you are testing (for the test site, sign in at datapipe-test.web.app), switch data collection on, and keep its dashboard open in another window while you run these.

  1. Clean finish (jsPsych, save as you go). The dashboard shows 1 session in progress with a running time while you work; it disappears when you finish, and exactly one file lands in storage.
  2. Abandoned tab. Close the tab half-way. Within seconds the row reads Connection lost — may resume; after 10 minutes, Stopped — being recovered; within about 15 minutes a .partial.json holding the completed trials appears in storage and the row is gone.
  3. Brief dropout. In DevTools, set the network to Offline for about 30 seconds, then back online, and finish. The row flips to Connection lost and back; you get one complete file and no partial.
  4. Failed final submission (tick Make the final submission fail). The log shows the save failed; the staged trials come back as a .partial.json within about 15 minutes, not 24 hours.
  5. Baseline without streaming (untick Save as you go). One file, and no in-progress row at any point.
  6. Plain JavaScript. One file per run; Send the same file again is rejected as a duplicate; with Start a session first the log shows the session being admitted and the submission still succeeds.
  7. Closed experiment. Switch data collection off and run the jsPsych test: the log reports that no session was started and the final submission is refused with DATA_COLLECTION_NOT_ACTIVE.

The plugin build used here is unreleased — see where it came from.