cc-libs/packages/trapos-music/tests/libmusic.lua
2026-06-20 12:00:30 +02:00

38 lines
1.1 KiB
Lua

local createLibTest = require('/apis/libtest');
local createMusic = require('/apis/libmusic');
local testlib = createLibTest({ ... });
local function fakeFs(dir, entries)
return {
isDir = function(path) return path == dir; end,
list = function(path)
if path ~= dir then error('unexpected list: ' .. tostring(path)); end
return entries;
end,
};
end
testlib.test('listTracks filters dfpwm, strips extension and sorts', function()
local music = createMusic({
dir = '/musics',
fs = fakeFs('/musics', { 'Zebra.dfpwm', 'notes.txt', 'Apple.dfpwm' }),
});
local tracks = music.listTracks();
testlib.assertEquals(#tracks, 2);
testlib.assertEquals(tracks[1].name, 'Apple');
testlib.assertEquals(tracks[1].path, '/musics/Apple.dfpwm');
testlib.assertEquals(tracks[2].name, 'Zebra');
testlib.assertEquals(tracks[2].path, '/musics/Zebra.dfpwm');
end);
testlib.test('listTracks returns empty when directory is missing', function()
local music = createMusic({
dir = '/musics',
fs = { isDir = function() return false; end },
});
testlib.assertEquals(#music.listTracks(), 0);
end);
testlib.run();