Skip to content

fix(samples): require the 1.0 SDK and match the client's plugin logger in tests - #299

Closed
germanocaumo wants to merge 2 commits into
bigbluebutton:v1.xfrom
germanocaumo:fix/samples-1.0-required-sdk
Closed

germanocaumo wants to merge 2 commits into
bigbluebutton:v1.xfrom
germanocaumo:fix/samples-1.0-required-sdk

Conversation

@germanocaumo

@germanocaumo germanocaumo commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

What does this PR do?

  • Samples require the 1.0 SDK. Every samples/*/manifest.json now declares "requiredSdkVersion": "^1.0.0-beta.2" instead of "~0.1.5".
  • Sample tests match the client's plugin logger name. Adds tests/utils/isPluginLog.ts and uses it in waitForPluginLogger() and in the data channel test.
  • The data channel sample logs at info. Its manifest set the console logger level to error, which dropped the info logs its test reads.

Closes Issue(s)

Closes #

Motivation

Manifests. BBB 4.0 (v4.0.x-develop) pins SDK 1.0.0-beta.2. akka-apps checks each plugin's requiredSdkVersion against that version with npm pre-release rules, so a pre-release only matches a range that names it. With ~0.1.5, every sample built from this branch is rejected:

Cannot load plugin [SampleActionsBarPlugin]: system SDK version [1.0.0-beta.2] does not satisfy plugin requirement [~0.1.5].

This breaks the core repo's plugin CI job on every 4.0 PR. bigbluebutton/bigbluebutton#25901 works around it on the core side for now.

Logger. The client gives each plugin a logger named pluginLogger(<plugin name>) (bigbluebutton/bigbluebutton#24185). The SDK falls back to its own PluginLogger only when the client provides none. The tests matched PluginLogger case-sensitively, so every test that waits for a plugin log timed out, even when the plugin had logged. That's why the core repo keeps all of them in sdk-flaky-tests.txt.

How to test

I ran the sample tests with this change against a BBB 4.1 dev server, using the v0.1.x samples (its E2E tests are identical to this branch's):

Test Result with this change
Action bar (4 tests) pass
Camera Settings Dropdown pass
Custom Subscription Hook pass
Media area pass. With the old helper it times out in waitForPluginLogger(), the same as on the core CI
Data Channel pass 3/3 with the info level. With error it collects no plugin logs and fails
Audio Settings Dropdown fails at the joinAudio click, before any plugin code runs. Looks specific to that server's audio join flow; not covered here

I only re-ran media-area with the old helper. The other logger tests use the same helper, and the core repo lists all of them as flaky.

Once this is released and the core pin is bumped, the core repo can drop its manifest workaround and most of sdk-flaky-tests.txt.

More

  • Added/updated documentation

The samples on this branch build against SDK 1.0.0-beta.2 but still
declared "requiredSdkVersion": "~0.1.5". akka-apps checks that range
against the server's SDK version with npm pre-release rules, so a core
on 1.0.0-beta.2 refuses to load every sample:

  Cannot load plugin [SampleActionsBarPlugin]: system SDK version
  [1.0.0-beta.2] does not satisfy plugin requirement [~0.1.5].

Require "^1.0.0-beta.2" instead, which names the pre-release and keeps
matching later 1.x releases.
The client hands each plugin a logger named "pluginLogger(<plugin
name>)", and the SDK only falls back to its own "PluginLogger" when the
client provides none. The sample tests looked for "PluginLogger" with a
case-sensitive match, so every test that waits for a plugin log timed
out even when the plugin logged.

Add an isPluginLog() predicate that matches both names and use it in
waitForPluginLogger() and in the data channel test.

The data channel sample also set its console logger level to "error",
which drops the info logs its test reads. Lower it to "info".
@germanocaumo

Copy link
Copy Markdown
Contributor Author

Closing in favor of #298, which makes the same fixes (manifest range, logger name, data channel log level) and also handles the LiveKit audio join in the audio settings test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant