add shared tunes test
This commit is contained in:
parent
f829f35cfa
commit
ed44f4ed0c
4 changed files with 6375 additions and 0 deletions
|
|
@ -109,6 +109,10 @@ export const samples = async (sampleMap, baseUrl = sampleMap._base || '') => {
|
||||||
sampleMap = `https://raw.githubusercontent.com/${path}/strudel.json`;
|
sampleMap = `https://raw.githubusercontent.com/${path}/strudel.json`;
|
||||||
}
|
}
|
||||||
const base = sampleMap.split('/').slice(0, -1).join('/');
|
const base = sampleMap.split('/').slice(0, -1).join('/');
|
||||||
|
if (typeof fetch === 'undefined') {
|
||||||
|
// skip fetch when in node / testing
|
||||||
|
return;
|
||||||
|
}
|
||||||
return fetch(sampleMap)
|
return fetch(sampleMap)
|
||||||
.then((res) => res.json())
|
.then((res) => res.json())
|
||||||
.then((json) => samples(json, baseUrl || json._base || base))
|
.then((json) => samples(json, baseUrl || json._base || base))
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,7 @@ const toneHelpersMocked = {
|
||||||
Chorus: MockedNode,
|
Chorus: MockedNode,
|
||||||
Freeverb: MockedNode,
|
Freeverb: MockedNode,
|
||||||
Gain: MockedNode,
|
Gain: MockedNode,
|
||||||
|
Reverb: MockedNode,
|
||||||
vol: mockNode,
|
vol: mockNode,
|
||||||
out: id,
|
out: id,
|
||||||
osc: id,
|
osc: id,
|
||||||
|
|
@ -116,17 +117,40 @@ strudel.Pattern.prototype.adsr = function () {
|
||||||
strudel.Pattern.prototype.out = function () {
|
strudel.Pattern.prototype.out = function () {
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
strudel.Pattern.prototype.soundfont = function () {
|
||||||
|
return this;
|
||||||
|
};
|
||||||
// tune mock
|
// tune mock
|
||||||
strudel.Pattern.prototype.tune = function () {
|
strudel.Pattern.prototype.tune = function () {
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
strudel.Pattern.prototype.midi = function () {
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
const uiHelpersMocked = {
|
const uiHelpersMocked = {
|
||||||
backgroundImage: id,
|
backgroundImage: id,
|
||||||
};
|
};
|
||||||
|
|
||||||
prebake({ isMock: true });
|
prebake({ isMock: true });
|
||||||
|
|
||||||
|
const canvasCtx = {
|
||||||
|
clearRect: () => {},
|
||||||
|
fillText: () => {},
|
||||||
|
fillRect: () => {},
|
||||||
|
canvas: {
|
||||||
|
width: 100,
|
||||||
|
height: 100,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
const audioCtx = {
|
||||||
|
currentTime: 1,
|
||||||
|
};
|
||||||
|
const getDrawContext = () => canvasCtx;
|
||||||
|
const getAudioContext = () => audioCtx;
|
||||||
|
const loadSoundfont = () => {};
|
||||||
|
|
||||||
// TODO: refactor to evalScope
|
// TODO: refactor to evalScope
|
||||||
evalScope(
|
evalScope(
|
||||||
// Tone,
|
// Tone,
|
||||||
|
|
@ -146,6 +170,9 @@ evalScope(
|
||||||
// gist,
|
// gist,
|
||||||
// euclid,
|
// euclid,
|
||||||
mini,
|
mini,
|
||||||
|
getDrawContext,
|
||||||
|
getAudioContext,
|
||||||
|
loadSoundfont,
|
||||||
// Tone,
|
// Tone,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
@ -197,3 +224,7 @@ export const testCycles = {
|
||||||
hyperpop: 10,
|
hyperpop: 10,
|
||||||
festivalOfFingers3: 16,
|
festivalOfFingers3: 16,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// fixed: https://strudel.tidalcycles.org/?DBp75NUfSxIn (missing .note())
|
||||||
|
// bug: https://strudel.tidalcycles.org/?xHaKTd1kTpCn + https://strudel.tidalcycles.org/?o5LLePbx8kiQ
|
||||||
|
|
|
||||||
6317
repl/src/test/__snapshots__/shared.test.mjs.snap
Normal file
6317
repl/src/test/__snapshots__/shared.test.mjs.snap
Normal file
File diff suppressed because it is too large
Load diff
23
repl/src/test/shared.test.mjs
Normal file
23
repl/src/test/shared.test.mjs
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
import { queryCode } from '../runtime.mjs';
|
||||||
|
import { describe, it } from 'vitest';
|
||||||
|
import { createClient } from '@supabase/supabase-js';
|
||||||
|
|
||||||
|
const supabase = createClient(
|
||||||
|
'https://pidxdsxphlhzjnzmifth.supabase.co',
|
||||||
|
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InBpZHhkc3hwaGxoempuem1pZnRoIiwicm9sZSI6ImFub24iLCJpYXQiOjE2NTYyMzA1NTYsImV4cCI6MTk3MTgwNjU1Nn0.bqlw7802fsWRnqU5BLYtmXk_k-D1VFmbkHMywWc15NM',
|
||||||
|
);
|
||||||
|
|
||||||
|
describe('renders shared tunes', async () => {
|
||||||
|
const { data } = await supabase.from('code');
|
||||||
|
data.forEach(({ id, code, hash }) => {
|
||||||
|
const url = `https://strudel.tidalcycles.org/?${hash}`;
|
||||||
|
it(`shared tune ${id} ${url}`, async ({ expect }) => {
|
||||||
|
if (code.includes('import(')) {
|
||||||
|
console.log('skip', url);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const haps = await queryCode(code, 1);
|
||||||
|
expect(haps).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
Add table
Add a link
Reference in a new issue