import { expect, tap } from '@push.rocks/tapbundle'; import * as qenv from '@push.rocks/qenv'; const testQenv = new qenv.Qenv('./', './.nogit/'); import * as ghost from '../ts/index.js'; let testGhostInstance: ghost.Ghost; tap.test('initialize Ghost instance', async () => { testGhostInstance = new ghost.Ghost({ baseUrl: 'http://localhost:2368', adminApiKey: await testQenv.getEnvVarOnDemand('ADMIN_APIKEY'), contentApiKey: await testQenv.getEnvVarOnDemand('CONTENT_APIKEY'), }); expect(testGhostInstance).toBeInstanceOf(ghost.Ghost); }); tap.test('should get settings', async () => { try { const settings = await testGhostInstance.getSettings(); expect(settings).toBeTruthy(); console.log(`Retrieved ${settings.settings?.length || 0} settings`); if (settings.settings && settings.settings.length > 0) { console.log(`Sample setting: ${settings.settings[0].key}`); } } catch (error: any) { if (error.message?.includes('undefined') || error.statusCode === 403) { console.log('Settings API not available in this Ghost version - skipping test'); } else { throw error; } } }); tap.test('should update settings', async () => { try { const settings = await testGhostInstance.getSettings(); if (settings.settings && settings.settings.length > 0) { const titleSetting = settings.settings.find((s: any) => s.key === 'title'); if (titleSetting) { const originalTitle = titleSetting.value; const updated = await testGhostInstance.updateSettings([ { key: 'title', value: originalTitle } ]); expect(updated).toBeTruthy(); console.log('Settings updated successfully'); } } } catch (error: any) { if (error.message?.includes('undefined') || error.statusCode === 403) { console.log('Settings API not available - skipping test'); } else { throw error; } } }); export default tap.start();