Meteor 3 compatibility release#60
Conversation
|
I'm wondering if mtest is compatible with Meteor 3. I see no reason not to, but the cancellation is strange. |
|
Looking forward to this! I tried getting the latest versions of both running with Meteor 3.0.2 but ran into this... |
|
@wreiske I'll release a new rc for |
|
That is a concern, but at first look I don't see any change that should cause an increase. 🤔 |
|
@StorytellerCZ my take is that timesync does not account that ddp methods are queued, and if timeSync calls are blocked by other method calls it will just re-issue timeSync calls. I think this whole DDP thing needs to be reverted |
|
@StorytellerCZ this is blocking because mtest is not meteor 3 compatible |
|
related zodern/mtest#2 |
|
Anything those of us in the community can do to help? Just updated to Meteor 3.4 and unable to update this package. |
|
Hey @allenfuller I also found the update to 3.4 caused a lot of dependency issues. I think we need to bump core versions to include 3.4. |
|
I published a new version |
|
@StorytellerCZ I would like to move biome with this |
Add two Mocha tests under a 'transport selection' describe block:
- forces DDP on Meteor.isCordova=true — asserts Meteor.callAsync('_timeSync')
is used and globalThis.fetch to the sync URL is not. Reproduces the
scenario that motivated the fix (Cordova client with useDDP still false).
- uses HTTP on a plain browser — guards the else fetch(...) branch of
updateOffset() against accidental deletion, proving the fix does not
regress the web.browser path.
Both tests install spies on Meteor.callAsync and globalThis.fetch, drive
a TimeSync.resync(), and poll with simplePoll rather than a fixed timeout
to stay reliable under CI load.
The previous fetch spy installed itself on globalThis.fetch, but timesync-client.js imports fetch from meteor/fetch as a module binding at load time. Replacing globalThis.fetch had no effect, so the browser regression test could never observe an HTTP sync and timed out. Switch to PerformanceObserver on 'resource' entries, which captures any fetch() to /_timesync regardless of how the caller references it.
|
Published |

Based on #59, this PR takes the next step and makes things compatible with Meteor 3.
TODOs left