feat(feishu): add group message permission authorization

This commit is contained in:
xmanrui 2026-08-22 02:29:59 +08:00
parent 7b892c02f5
commit 7bf12628ce
17 changed files with 1581 additions and 258 deletions

View file

@ -24,9 +24,16 @@ test('PluginConfigStore persists non-secret onboarding facts', async () => {
assert.equal((await stat(path)).mode & 0o777, 0o600);
assert.equal((await new PluginConfigStore(path).load()).get().appId, 'cli_test');
assert.equal(store.get().groupResponseMode, 'mention');
assert.equal(store.get().groupMessagePermissionGranted, false);
await store.save({ ...store.get(), groupResponseMode: 'all' });
assert.equal((await new PluginConfigStore(path).load()).get().groupResponseMode, 'all');
await store.save({
...store.get(),
groupResponseMode: 'all',
groupMessagePermissionGranted: true,
});
const reloaded = (await new PluginConfigStore(path).load()).get();
assert.equal(reloaded.groupResponseMode, 'all');
assert.equal(reloaded.groupMessagePermissionGranted, true);
await store.clear();
assert.equal(store.get(), null);
@ -71,6 +78,7 @@ test('PluginConfigStore migrates a v1 bot atomically without moving its credenti
assert.equal(store.get().ownerOpenId, 'ou_legacy');
assert.equal(store.list()[0].appId, 'cli_legacy');
assert.equal(store.list()[0].groupResponseMode, 'mention');
assert.equal(store.list()[0].groupMessagePermissionGranted, false);
});
test('PluginConfigStore rejects an invalid or duplicate v2 document without dropping entries', async () => {