Merge branch 'modularization' into modularization-new-docs

This commit is contained in:
Josh de Leeuw 2021-10-01 13:01:18 -04:00
commit a8758e395b
120 changed files with 596 additions and 2285 deletions

587
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,5 @@
import { sep as pathSeparator } from "path";
import gulp from "gulp"; import gulp from "gulp";
import rename from "gulp-rename"; import rename from "gulp-rename";
import replace from "gulp-replace"; import replace from "gulp-replace";
@ -13,7 +15,7 @@ export const createCoreDistArchive = () =>
// Rename dist files // Rename dist files
.pipe( .pipe(
rename((path) => { rename((path) => {
const packageName = path.dirname.split("/")[0]; const packageName = path.dirname.split(pathSeparator)[0];
path.dirname = "/dist"; path.dirname = "/dist";
path.basename = packageName; path.basename = packageName;

View File

@ -7,7 +7,12 @@ import { terser } from "rollup-plugin-terser";
import typescript from "rollup-plugin-typescript2"; import typescript from "rollup-plugin-typescript2";
import ts from "typescript"; import ts from "typescript";
const makeConfig = (outputOptions, globalOptions = {}, iifeOutputOptions = {}) => { const makeConfig = ({
outputOptions = {},
globalOptions = {},
iifeOutputOptions = {},
nodeOnly = false,
}) => {
const source = "src/index"; const source = "src/index";
const destination = "dist/index"; const destination = "dist/index";
@ -39,11 +44,8 @@ const makeConfig = (outputOptions, globalOptions = {}, iifeOutputOptions = {}) =
...globalOptions, ...globalOptions,
}); });
return defineConfig([ /** @type {import("rollup").OutputOptions} */
{ const output = [
// Non-babel builds
...commonConfig,
output: [
{ {
// Build file to be used as an ES import // Build file to be used as an ES import
file: `${destination}.js`, file: `${destination}.js`,
@ -56,17 +58,24 @@ const makeConfig = (outputOptions, globalOptions = {}, iifeOutputOptions = {}) =
format: "cjs", format: "cjs",
...outputOptions, ...outputOptions,
}, },
{ ];
if (!nodeOnly) {
output.push({
// Build file to be used for tinkering in modern browsers // Build file to be used for tinkering in modern browsers
file: `${destination}.browser.js`, file: `${destination}.browser.js`,
format: "iife", format: "iife",
...outputOptions, ...outputOptions,
...iifeOutputOptions, ...iifeOutputOptions,
}, });
], }
},
{ // Non-babel builds
const config = defineConfig([{ ...commonConfig, output }]);
if (!nodeOnly) {
// Babel build // Babel build
config.push({
...commonConfig, ...commonConfig,
plugins: commonConfig.plugins.concat( plugins: commonConfig.plugins.concat(
babel({ babel({
@ -84,8 +93,10 @@ const makeConfig = (outputOptions, globalOptions = {}, iifeOutputOptions = {}) =
...iifeOutputOptions, ...iifeOutputOptions,
}, },
], ],
}, });
]); }
return config;
}; };
/** /**
@ -96,24 +107,32 @@ const makeConfig = (outputOptions, globalOptions = {}, iifeOutputOptions = {}) =
* global scope in browser builds * global scope in browser builds
*/ */
export const makeRollupConfig = (iifeName) => export const makeRollupConfig = (iifeName) =>
makeConfig( makeConfig({
{ outputOptions: {
exports: "default", exports: "default",
globals: { jspsych: "jsPsychModule" }, globals: { jspsych: "jsPsychModule" },
}, },
{ external: ["jspsych"] }, globalOptions: { external: ["jspsych"] },
{ name: iifeName } iifeOutputOptions: { name: iifeName },
); });
/** /**
* Returns the rollup configuration for the core `jspsych` package. * Returns the rollup configuration for the core `jspsych` package.
*/ */
export const makeCoreRollupConfig = () => export const makeCoreRollupConfig = () =>
makeConfig( makeConfig({
{ outputOptions: {
exports: "named", exports: "named",
name: "jsPsychModule", name: "jsPsychModule",
}, },
{}, iifeOutputOptions: { footer: "var initJsPsych = jsPsychModule.initJsPsych;" },
{ footer: "var initJsPsych = jsPsychModule.initJsPsych;" } });
);
/**
* Returns the rollup configuration for Node.js-only packages
*/
export const makeNodeRollupConfig = () =>
makeConfig({
globalOptions: { external: ["jspsych"] },
nodeOnly: true,
});

View File

@ -1,9 +1,9 @@
{ {
// ts-config for the jspsych-dist monorepo // tsconfig for the jspsych-contrib monorepo
"extends": "@jspsych/config/tsconfig.json", "extends": "@jspsych/config/tsconfig.json",
"compilerOptions": { "compilerOptions": {
// map jspsych-contrib package imports directly to their source files
"paths": { "paths": {
// map jspsych-contrib package imports directly to their source files
"@jspsych-contrib/*": ["../*/src"] "@jspsych-contrib/*": ["../*/src"]
} }
} }

View File

@ -4,7 +4,6 @@
"compilerOptions": { "compilerOptions": {
// map package imports directly to their source files // map package imports directly to their source files
"paths": { "paths": {
"jspsych/tests": ["../jspsych/tests"],
"jspsych": ["../jspsych/src"], "jspsych": ["../jspsych/src"],
"@jspsych/*": ["../*/src"] "@jspsych/*": ["../*/src"]
}, },

View File

@ -1,6 +1,6 @@
{ {
// shared base tsconfig for all jsPsych packages // shared base tsconfig for all jsPsych packages
// based on https://github.com/formium/tsdx/blob/462af2d002987f985695b98400e0344b8f2754b7/templates/basic/tsconfig.json<<<< // based on https://github.com/formium/tsdx/blob/462af2d002987f985695b98400e0344b8f2754b7/templates/basic/tsconfig.json
// see https://www.typescriptlang.org/tsconfig to better understand tsconfigs // see https://www.typescriptlang.org/tsconfig to better understand tsconfigs
"compilerOptions": { "compilerOptions": {
"target": "ES6", "target": "ES6",
@ -27,10 +27,7 @@
"skipLibCheck": true, "skipLibCheck": true,
// error out if import and file system have a casing mismatch. Recommended by TS // error out if import and file system have a casing mismatch. Recommended by TS
"forceConsistentCasingInFileNames": true, "forceConsistentCasingInFileNames": true,
// do note emit build output when running `tsc` // do not emit build output when running `tsc`
"noEmit": true, "noEmit": true
// allow resolving json modules in tests (needed for transitive imports of jspsych in tests;
// the jspsych package itself uses https://stackoverflow.com/a/61426303 instead)
"resolveJsonModule": true
} }
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -44,6 +44,7 @@
"auto-bind": "^4.0.0" "auto-bind": "^4.0.0"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,6 +1,5 @@
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import { pressKey, startTimeline } from "@jspsych/test-utils";
import { pressKey, startTimeline } from "../utils";
describe("case_sensitive_responses parameter", () => { describe("case_sensitive_responses parameter", () => {
test("has a default value of false", async () => { test("has a default value of false", async () => {

View File

@ -1,7 +1,7 @@
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import { pressKey, startTimeline } from "@jspsych/test-utils";
import { initJsPsych } from "../../src"; import { initJsPsych } from "../../src";
import { pressKey, startTimeline } from "../utils";
describe("The css_classes parameter for trials", () => { describe("The css_classes parameter for trials", () => {
test("Adds a single CSS class to the root jsPsych element", async () => { test("Adds a single CSS class to the root jsPsych element", async () => {

View File

@ -1,7 +1,6 @@
import { jest } from "@jest/globals"; import { jest } from "@jest/globals";
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import { pressKey, startTimeline } from "@jspsych/test-utils";
import { pressKey, startTimeline } from "../utils";
jest.useFakeTimers(); jest.useFakeTimers();

View File

@ -1,6 +1,5 @@
import surveyText from "@jspsych/plugin-survey-text"; import surveyText from "@jspsych/plugin-survey-text";
import { startTimeline } from "@jspsych/test-utils";
import { startTimeline } from "../utils";
describe("nested defaults", () => { describe("nested defaults", () => {
test("work in basic situation", async () => { test("work in basic situation", async () => {

View File

@ -1,7 +1,7 @@
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import { flushPromises, pressKey, startTimeline } from "@jspsych/test-utils";
import { initJsPsych } from "../../src"; import { initJsPsych } from "../../src";
import { flushPromises, pressKey, startTimeline } from "../utils";
test("works on basic timeline", async () => { test("works on basic timeline", async () => {
const jsPsych = initJsPsych(); const jsPsych = initJsPsych();

View File

@ -1,8 +1,8 @@
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import htmlSliderResponse from "@jspsych/plugin-html-slider-response"; import htmlSliderResponse from "@jspsych/plugin-html-slider-response";
import { pressKey, startTimeline } from "@jspsych/test-utils";
import { initJsPsych } from "../../src"; import { initJsPsych } from "../../src";
import { pressKey, startTimeline } from "../utils";
jest.useFakeTimers(); jest.useFakeTimers();

View File

@ -2,9 +2,9 @@ import cloze from "@jspsych/plugin-cloze";
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import surveyMultiChoice from "@jspsych/plugin-survey-multi-choice"; import surveyMultiChoice from "@jspsych/plugin-survey-multi-choice";
import surveyText from "@jspsych/plugin-survey-text"; import surveyText from "@jspsych/plugin-survey-text";
import { clickTarget, pressKey, startTimeline } from "@jspsych/test-utils";
import { JsPsych, JsPsychPlugin, ParameterType, TrialType } from "../../src"; import { JsPsych, JsPsychPlugin, ParameterType, TrialType } from "../../src";
import { clickTarget, pressKey, startTimeline } from "../utils";
describe("standard use of function as parameter", () => { describe("standard use of function as parameter", () => {
test("function value is used as parameter", async () => { test("function value is used as parameter", async () => {

View File

@ -1,6 +1,5 @@
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import { pressKey, startTimeline } from "@jspsych/test-utils";
import { pressKey, startTimeline } from "../utils";
jest.useFakeTimers("modern"); jest.useFakeTimers("modern");

View File

@ -1,7 +1,7 @@
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import { pressKey, startTimeline } from "@jspsych/test-utils";
import { initJsPsych } from "../../src"; import { initJsPsych } from "../../src";
import { pressKey, startTimeline } from "../utils";
describe("automatic progress bar", () => { describe("automatic progress bar", () => {
test("progress bar does not display by default", async () => { test("progress bar does not display by default", async () => {

View File

@ -1,6 +1,5 @@
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import { flushPromises, startTimeline } from "@jspsych/test-utils";
import { flushPromises, startTimeline } from "../utils";
describe("jsPsych.run()", () => { describe("jsPsych.run()", () => {
beforeEach(() => { beforeEach(() => {

View File

@ -1,9 +1,9 @@
import callFunction from "@jspsych/plugin-call-function"; import callFunction from "@jspsych/plugin-call-function";
import htmlButtonResponse from "@jspsych/plugin-html-button-response"; import htmlButtonResponse from "@jspsych/plugin-html-button-response";
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import { pressKey, startTimeline } from "@jspsych/test-utils";
import { initJsPsych } from "../../src"; import { initJsPsych } from "../../src";
import { pressKey, startTimeline } from "../utils";
describe("randomize order", () => {}); describe("randomize order", () => {});

View File

@ -1,7 +1,7 @@
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import { pressKey, startTimeline } from "@jspsych/test-utils";
import { initJsPsych } from "../../src"; import { initJsPsych } from "../../src";
import { pressKey, startTimeline } from "../utils";
describe("loop function", () => { describe("loop function", () => {
test("repeats a timeline when returns true", async () => { test("repeats a timeline when returns true", async () => {

View File

@ -1,8 +1,7 @@
import sameDifferentHtml from "@jspsych/plugin-same-different-html"; import sameDifferentHtml from "@jspsych/plugin-same-different-html";
import surveyMultiSelect from "@jspsych/plugin-survey-multi-select"; import surveyMultiSelect from "@jspsych/plugin-survey-multi-select";
import surveyText from "@jspsych/plugin-survey-text"; import surveyText from "@jspsych/plugin-survey-text";
import { clickTarget, pressKey, startTimeline } from "@jspsych/test-utils";
import { clickTarget, pressKey, startTimeline } from "../utils";
jest.useFakeTimers(); jest.useFakeTimers();

View File

@ -2,8 +2,7 @@ import instructions from "@jspsych/plugin-instructions";
import sameDifferentHtml from "@jspsych/plugin-same-different-html"; import sameDifferentHtml from "@jspsych/plugin-same-different-html";
import surveyMultiSelect from "@jspsych/plugin-survey-multi-select"; import surveyMultiSelect from "@jspsych/plugin-survey-multi-select";
import surveyText from "@jspsych/plugin-survey-text"; import surveyText from "@jspsych/plugin-survey-text";
import { clickTarget, pressKey, startTimeline } from "@jspsych/test-utils";
import { clickTarget, pressKey, startTimeline } from "../utils";
jest.useFakeTimers(); jest.useFakeTimers();

View File

@ -1,7 +1,7 @@
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import { pressKey, startTimeline } from "@jspsych/test-utils";
import { initJsPsych } from "../../src"; import { initJsPsych } from "../../src";
import { pressKey, startTimeline } from "../utils";
describe("Basic data recording", () => { describe("Basic data recording", () => {
test("should be able to get rt after running experiment", async () => { test("should be able to get rt after running experiment", async () => {

View File

@ -1,7 +1,7 @@
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import { pressKey, startTimeline } from "@jspsych/test-utils";
import { initJsPsych } from "../../src"; import { initJsPsych } from "../../src";
import { pressKey, startTimeline } from "../utils";
describe("The data parameter", () => { describe("The data parameter", () => {
test("should record data to a trial", async () => { test("should record data to a trial", async () => {

View File

@ -1,7 +1,7 @@
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import { pressKey, startTimeline } from "@jspsych/test-utils";
import { initJsPsych } from "../../src"; import { initJsPsych } from "../../src";
import { pressKey, startTimeline } from "../utils";
describe("Data recording", () => { describe("Data recording", () => {
test("record focus events", async () => { test("record focus events", async () => {

View File

@ -1,8 +1,7 @@
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import reconstruction from "@jspsych/plugin-reconstruction"; import reconstruction from "@jspsych/plugin-reconstruction";
import surveyText from "@jspsych/plugin-survey-text"; import surveyText from "@jspsych/plugin-survey-text";
import { clickTarget, pressKey, startTimeline } from "@jspsych/test-utils";
import { clickTarget, pressKey, startTimeline } from "../utils";
describe("Trial parameters in the data", () => { describe("Trial parameters in the data", () => {
test("Can be added by specifying the parameter with a value of true in save_trial_parameters", async () => { test("Can be added by specifying the parameter with a value of true in save_trial_parameters", async () => {

View File

@ -1,12 +1,11 @@
import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response"; import htmlKeyboardResponse from "@jspsych/plugin-html-keyboard-response";
import { pressKey } from "@jspsych/test-utils";
import { JsPsych, initJsPsych } from "../../src"; import { initJsPsych } from "../../src";
import { pressKey } from "../utils";
import testExtension from "./test-extension"; import testExtension from "./test-extension";
jest.useFakeTimers(); jest.useFakeTimers();
// https://github.com/jspsych/jsPsych/projects/6#card-64825201
describe("jsPsych.extensions", () => { describe("jsPsych.extensions", () => {
test("initialize is called at start of experiment", async () => { test("initialize is called at start of experiment", async () => {
const jsPsych = initJsPsych({ const jsPsych = initJsPsych({

View File

@ -1,4 +1,4 @@
import { JsPsych, JsPsychExtension } from "jspsych"; import { JsPsych, JsPsychExtension } from "../../src";
class TestExtension implements JsPsychExtension { class TestExtension implements JsPsychExtension {
static info = { static info = {

View File

@ -1,6 +1,7 @@
import { keyDown, keyUp, pressKey } from "@jspsych/test-utils";
import { KeyboardListenerAPI } from "../../src/modules/plugin-api/KeyboardListenerAPI"; import { KeyboardListenerAPI } from "../../src/modules/plugin-api/KeyboardListenerAPI";
import { TimeoutAPI } from "../../src/modules/plugin-api/TimeoutAPI"; import { TimeoutAPI } from "../../src/modules/plugin-api/TimeoutAPI";
import { keyDown, keyUp, pressKey } from "../utils";
jest.useFakeTimers(); jest.useFakeTimers();

View File

@ -4,5 +4,5 @@
"baseUrl": ".", "baseUrl": ".",
"resolveJsonModule": false // using https://stackoverflow.com/a/61426303 instead "resolveJsonModule": false // using https://stackoverflow.com/a/61426303 instead
}, },
"include": ["src", "test", "global.d.ts"] "include": ["src", "tests", "global.d.ts"]
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { startTimeline } from "jspsych/tests/utils"; import { startTimeline } from "@jspsych/test-utils";
import animation from "."; import animation from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,5 +1,5 @@
import { clickTarget, startTimeline } from "@jspsych/test-utils";
import { initJsPsych } from "jspsych"; import { initJsPsych } from "jspsych";
import { clickTarget, startTimeline } from "jspsych/tests/utils";
import audioButtonResponse from "."; import audioButtonResponse from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { startTimeline } from "jspsych/tests/utils"; import { startTimeline } from "@jspsych/test-utils";
import callFunction from "."; import callFunction from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { pressKey, startTimeline } from "jspsych/tests/utils"; import { pressKey, startTimeline } from "@jspsych/test-utils";
import categorizeAnimation from "."; import categorizeAnimation from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { clickTarget, startTimeline } from "jspsych/tests/utils"; import { clickTarget, startTimeline } from "@jspsych/test-utils";
import cloze from "."; import cloze from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { startTimeline } from "jspsych/tests/utils"; import { startTimeline } from "@jspsych/test-utils";
import freeSort from "."; import freeSort from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { startTimeline } from "jspsych/tests/utils"; import { startTimeline } from "@jspsych/test-utils";
import fullscreen from "."; import fullscreen from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { clickTarget, startTimeline } from "jspsych/tests/utils"; import { clickTarget, startTimeline } from "@jspsych/test-utils";
import htmlButtonResponse from "."; import htmlButtonResponse from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { pressKey, startTimeline } from "jspsych/tests/utils"; import { pressKey, startTimeline } from "@jspsych/test-utils";
import htmlKeyboardResponse from "."; import htmlKeyboardResponse from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { clickTarget, startTimeline } from "jspsych/tests/utils"; import { clickTarget, startTimeline } from "@jspsych/test-utils";
import htmlSliderResponse from "."; import htmlSliderResponse from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { pressKey, startTimeline } from "jspsych/tests/utils"; import { pressKey, startTimeline } from "@jspsych/test-utils";
import iatHtml from "."; import iatHtml from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { pressKey, startTimeline } from "jspsych/tests/utils"; import { pressKey, startTimeline } from "@jspsych/test-utils";
import iatImage from "."; import iatImage from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { clickTarget, startTimeline } from "jspsych/tests/utils"; import { clickTarget, startTimeline } from "@jspsych/test-utils";
import imageButtonResponse from "."; import imageButtonResponse from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { pressKey, startTimeline } from "jspsych/tests/utils"; import { pressKey, startTimeline } from "@jspsych/test-utils";
import imageKeyboardResponse from "."; import imageKeyboardResponse from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { clickTarget, startTimeline } from "jspsych/tests/utils"; import { clickTarget, startTimeline } from "@jspsych/test-utils";
import imageSliderResponse from "."; import imageSliderResponse from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { pressKey, startTimeline } from "jspsych/tests/utils"; import { pressKey, startTimeline } from "@jspsych/test-utils";
import instructions from "."; import instructions from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { clickTarget, startTimeline } from "jspsych/tests/utils"; import { clickTarget, startTimeline } from "@jspsych/test-utils";
import maxdiff from "."; import maxdiff from ".";

View File

@ -1,8 +1,8 @@
import audioKeyboardResponse from "@jspsych/plugin-audio-keyboard-response"; import audioKeyboardResponse from "@jspsych/plugin-audio-keyboard-response";
import imageKeyboardResponse from "@jspsych/plugin-image-keyboard-response"; import imageKeyboardResponse from "@jspsych/plugin-image-keyboard-response";
import videoKeyboardResponse from "@jspsych/plugin-video-keyboard-response"; import videoKeyboardResponse from "@jspsych/plugin-video-keyboard-response";
import { startTimeline } from "@jspsych/test-utils";
import { JsPsych, initJsPsych } from "jspsych"; import { JsPsych, initJsPsych } from "jspsych";
import { startTimeline } from "jspsych/tests/utils";
import preloadPlugin from "."; import preloadPlugin from ".";

View File

@ -1 +0,0 @@
module.exports = require("@jspsych/config/jest").makePackageConfig(__dirname);

View File

@ -1,3 +0,0 @@
import { makeRollupConfig } from "@jspsych/config/rollup";
export default makeRollupConfig("jsPsychRdk");

View File

@ -1,44 +0,0 @@
import { pressKey, startTimeline } from "jspsych/tests/utils";
import rdk from ".";
describe("rdk plugin", () => {
test("choices and frame data are stored as arrays", async () => {
const { getData } = await startTimeline([
{
type: rdk,
number_of_dots: 200,
RDK_type: 3,
choices: ["a", "l"],
correct_choice: "l",
coherent_direction: 0,
},
]);
pressKey("l");
const data = getData().values()[0];
expect(data.choices).toStrictEqual(["a", "l"]);
expect(Array.isArray(data.frame_rate_array)).toBe(true);
});
test("responses are scored correctly", async () => {
const trial = {
type: rdk,
number_of_dots: 200,
RDK_type: 3,
choices: ["a", "l"],
correct_choice: "l",
coherent_direction: 0,
};
const { getData } = await startTimeline([trial, trial]);
pressKey("l");
pressKey("a");
expect(getData().values()).toEqual([
expect.objectContaining({ response: "l", correct: true }),
expect.objectContaining({ response: "a", correct: false }),
]);
});
});

File diff suppressed because it is too large Load Diff

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { clickTarget, pressKey, startTimeline } from "jspsych/tests/utils"; import { clickTarget, pressKey, startTimeline } from "@jspsych/test-utils";
import reconstruction from "."; import reconstruction from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { mouseDownMouseUpTarget, startTimeline } from "jspsych/tests/utils"; import { mouseDownMouseUpTarget, startTimeline } from "@jspsych/test-utils";
import serialReactionTimeMouse from "."; import serialReactionTimeMouse from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { pressKey, startTimeline } from "jspsych/tests/utils"; import { pressKey, startTimeline } from "@jspsych/test-utils";
import serialReactionTime from "."; import serialReactionTime from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { clickTarget, startTimeline } from "jspsych/tests/utils"; import { clickTarget, startTimeline } from "@jspsych/test-utils";
import surveyHtmlForm from "."; import surveyHtmlForm from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { clickTarget, startTimeline } from "jspsych/tests/utils"; import { clickTarget, startTimeline } from "@jspsych/test-utils";
import surveyLikert from "."; import surveyLikert from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { clickTarget, startTimeline } from "jspsych/tests/utils"; import { clickTarget, startTimeline } from "@jspsych/test-utils";
import surveyMultiChoice from "."; import surveyMultiChoice from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { clickTarget, startTimeline } from "jspsych/tests/utils"; import { clickTarget, startTimeline } from "@jspsych/test-utils";
import surveyMultiSelect from "."; import surveyMultiSelect from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -1,4 +1,4 @@
import { clickTarget, startTimeline } from "jspsych/tests/utils"; import { clickTarget, startTimeline } from "@jspsych/test-utils";
import surveyText from "."; import surveyText from ".";

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

View File

@ -36,6 +36,7 @@
"jspsych": ">=7" "jspsych": ">=7"
}, },
"devDependencies": { "devDependencies": {
"@jspsych/config": "^0.1.0" "@jspsych/config": "^0.1.0",
"@jspsych/test-utils": "^0.1.0"
} }
} }

Some files were not shown because too many files have changed in this diff Show More