Add coverage for async accounts auth APIs

This commit is contained in:
Harry Adel
2026-04-23 18:13:38 +02:00
parent 421f3d8115
commit e883ea296e
2 changed files with 38 additions and 27 deletions

View File

@@ -99,12 +99,16 @@ Tinytest.addAsync(
'accounts async - Meteor.loggingIn() is false after login has completed',
(test, done) => {
logoutAndCreateUser(test, done, () => {
// Login then verify loggingIn is false after login has completed
Meteor.loginWithPassword(username, password, async () => {
test.isFalse(Meteor.loggingIn());
test.isTrue(await Meteor.userAsync());
removeTestUser(done);
});
Meteor.loginWithPasswordAsync(username, password)
.then(async (loginDetails) => {
test.isFalse(Meteor.loggingIn());
test.isTrue(await Meteor.userAsync());
test.equal(loginDetails.type, 'password');
test.equal(loginDetails.id, Meteor.userId());
test.isTrue(!!loginDetails.token);
})
.catch(error => test.fail(error.message))
.finally(() => removeTestUser(done));
});
}
);
@@ -125,12 +129,13 @@ Tinytest.addAsync(
'accounts - Meteor.loggingOut() is false after logout has completed',
(test, done) => {
logoutAndCreateUser(test, done, () => {
// Logout then verify loggingOut is false after logout has completed
Meteor.logout((error) => {
test.isFalse(Meteor.user());
test.isFalse(Meteor.loggingOut());
removeTestUser(done);
});
Meteor.logoutAsync()
.then(async () => {
test.isFalse(await Meteor.userAsync());
test.isFalse(Meteor.loggingOut());
})
.catch(error => test.fail(error.message))
.finally(() => removeTestUser(done));
});
}
);
@@ -516,11 +521,13 @@ Tinytest.addAsync('accounts - logoutAllClients', function (test, done) {
await Meteor.callAsync('pushFakeLoginToken', userId, 'test-token');
await Meteor.callAsync('pushFakeLoginToken', userId, 'test-token2');
test.equal(await Meteor.callAsync('getLoginTokenCount', userId), 3);
Meteor.logoutAllClients(async () => {
test.isFalse(!!Meteor.user());
test.equal(await Meteor.callAsync('getLoginTokenCount', userId), 0);
removeTestUser(done);
});
Meteor.logoutAllClientsAsync()
.then(async () => {
test.isFalse(!!Meteor.user());
test.equal(await Meteor.callAsync('getLoginTokenCount', userId), 0);
})
.catch(error => test.fail(error.message))
.finally(() => removeTestUser(done));
});
});

View File

@@ -833,8 +833,11 @@ if (Meteor.isClient) (() => {
function (test, expect) {
// we can login with a valid token
const expectLoginOK = expect(err => test.isFalse(err));
Meteor.loginWithToken(Accounts._storedLoginToken(), expectLoginOK);
return Meteor.loginWithTokenAsync(Accounts._storedLoginToken())
.then((loginDetails) => {
test.equal(loginDetails.type, 'resume');
test.isTrue(!!loginDetails.token);
});
},
function (test, expect) {
@@ -889,14 +892,15 @@ if (Meteor.isClient) (() => {
const expectSecondConnLoggedIn = expect((err, result) => {
test.equal(result.token, token);
test.isFalse(err);
Meteor.logoutOtherClients(err => {
test.isFalse(err);
secondConn.call('login', { resume: token },
expectSecondConnLoggedOut);
Accounts.connection.call('login', {
resume: Accounts._storedLoginToken()
}, expectAccountsConnLoggedIn);
});
Meteor.logoutOtherClientsAsync()
.then(() => {
secondConn.call('login', { resume: token },
expectSecondConnLoggedOut);
Accounts.connection.call('login', {
resume: Accounts._storedLoginToken()
}, expectAccountsConnLoggedIn);
})
.catch(asyncError => test.fail(asyncError.message));
});
Meteor.loginWithPassword(