Skip to content

Commit e2dfe04

Browse files
authored
Merge pull request #208 from fedwiki/fix-plugins-endpoint
fix(plugins): plugin detection in system plugins endpoint
2 parents 0317cb6 + e344c65 commit e2dfe04

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

lib/server.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -640,10 +640,13 @@ export default async argv => {
640640

641641
// Returns a list of installed plugins. (does this get called anymore!)
642642
app.get('/system/plugins.json', cors, (req, res) => {
643+
// create a list of plugin pages.
643644
try {
644-
const pluginNames = Object.keys(require.main.require('./package').dependencies)
645-
.filter(depend => depend.startsWith('wiki-plugin'))
646-
.map(name => name.slice(12))
645+
const dependencyPlugins = Object.keys(packageJson.dependencies).filter(depend => depend.startsWith('wiki-plugin'))
646+
const plugins = dependencyPlugins.length
647+
? dependencyPlugins
648+
: Object.keys(packageJson.devDependencies).filter(depend => depend.startsWith('wiki-plugin'))
649+
const pluginNames = plugins.map(name => name.slice(12))
647650
res.send(pluginNames)
648651
} catch (e) {
649652
return res.e(e)

test/server.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,18 @@ describe('server', () => {
237237
})
238238
})
239239

240+
it('should return a list of plugins', async () => {
241+
await request
242+
.get('/system/plugins.json')
243+
.expect(200)
244+
.expect('Content-Type', /json/)
245+
.then(res => {
246+
assert.equal(res.body.length, 2)
247+
assert(res.body.includes('activity'))
248+
assert(res.body.includes('video'))
249+
})
250+
})
251+
240252
// Should be a version test, but doesn't seem it's supported in test mode yet.
241253
it.skip('server should return a version', async () => {
242254
await request

0 commit comments

Comments
 (0)