mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-04-05 12:12:05 -07:00
[codex] Make Windows mpv shortcut self-contained (#40)
This commit is contained in:
@@ -173,7 +173,10 @@ test('syncInstalledFirstRunPluginBinaryPath fills blank binary_path for existing
|
||||
const installPaths = resolveDefaultMpvInstallPaths('linux', homeDir, xdgConfigHome);
|
||||
|
||||
fs.mkdirSync(path.dirname(installPaths.pluginConfigPath), { recursive: true });
|
||||
fs.writeFileSync(installPaths.pluginConfigPath, 'binary_path=\nsocket_path=/tmp/subminer-socket\n');
|
||||
fs.writeFileSync(
|
||||
installPaths.pluginConfigPath,
|
||||
'binary_path=\nsocket_path=/tmp/subminer-socket\n',
|
||||
);
|
||||
|
||||
const result = syncInstalledFirstRunPluginBinaryPath({
|
||||
platform: 'linux',
|
||||
@@ -222,3 +225,72 @@ test('syncInstalledFirstRunPluginBinaryPath preserves explicit binary_path overr
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
test('detectInstalledFirstRunPlugin detects plugin installed in canonical mpv config location on macOS', () => {
|
||||
withTempDir((root) => {
|
||||
const homeDir = path.join(root, 'home');
|
||||
const installPaths = resolveDefaultMpvInstallPaths('darwin', homeDir);
|
||||
const pluginDir = path.join(homeDir, '.config', 'mpv', 'scripts', 'subminer');
|
||||
const pluginEntrypointPath = path.join(pluginDir, 'main.lua');
|
||||
|
||||
fs.mkdirSync(pluginDir, { recursive: true });
|
||||
fs.mkdirSync(path.dirname(pluginEntrypointPath), { recursive: true });
|
||||
fs.writeFileSync(pluginEntrypointPath, '-- plugin');
|
||||
|
||||
assert.equal(
|
||||
detectInstalledFirstRunPlugin(installPaths),
|
||||
true,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
test('detectInstalledFirstRunPlugin ignores scoped plugin layout path', () => {
|
||||
withTempDir((root) => {
|
||||
const homeDir = path.join(root, 'home');
|
||||
const xdgConfigHome = path.join(root, 'xdg');
|
||||
const installPaths = resolveDefaultMpvInstallPaths('darwin', homeDir, xdgConfigHome);
|
||||
const pluginDir = path.join(xdgConfigHome, 'mpv', 'scripts', '@plugin', 'subminer');
|
||||
const pluginEntrypointPath = path.join(pluginDir, 'main.lua');
|
||||
|
||||
fs.mkdirSync(pluginDir, { recursive: true });
|
||||
fs.mkdirSync(path.dirname(pluginEntrypointPath), { recursive: true });
|
||||
fs.writeFileSync(pluginEntrypointPath, '-- plugin');
|
||||
|
||||
assert.equal(
|
||||
detectInstalledFirstRunPlugin(installPaths),
|
||||
false,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
test('detectInstalledFirstRunPlugin ignores legacy loader file', () => {
|
||||
withTempDir((root) => {
|
||||
const homeDir = path.join(root, 'home');
|
||||
const installPaths = resolveDefaultMpvInstallPaths('darwin', homeDir);
|
||||
const legacyLoaderPath = path.join(installPaths.scriptsDir, 'subminer.lua');
|
||||
|
||||
fs.mkdirSync(path.dirname(legacyLoaderPath), { recursive: true });
|
||||
fs.writeFileSync(legacyLoaderPath, '-- plugin');
|
||||
|
||||
assert.equal(
|
||||
detectInstalledFirstRunPlugin(installPaths),
|
||||
false,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
test('detectInstalledFirstRunPlugin requires main.lua in subminer directory', () => {
|
||||
withTempDir((root) => {
|
||||
const homeDir = path.join(root, 'home');
|
||||
const installPaths = resolveDefaultMpvInstallPaths('darwin', homeDir);
|
||||
const pluginDir = path.join(installPaths.scriptsDir, 'subminer');
|
||||
|
||||
fs.mkdirSync(pluginDir, { recursive: true });
|
||||
fs.writeFileSync(path.join(pluginDir, 'not_main.lua'), '-- plugin');
|
||||
|
||||
assert.equal(
|
||||
detectInstalledFirstRunPlugin(installPaths),
|
||||
false,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user