63 lines
2.0 KiB
TypeScript
63 lines
2.0 KiB
TypeScript
|
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();
|