Skip to content

Commit 6c21038

Browse files
committed
refactor
1 parent d582e56 commit 6c21038

File tree

3 files changed

+33
-30
lines changed

3 files changed

+33
-30
lines changed

spec/ParseUser.spec.js

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4431,40 +4431,34 @@ describe('allowClientClassCreation option', () => {
44314431
});
44324432
});
44334433

4434-
describe('custom log levels for user errors', () => {
4435-
it('should respect custom log levels for username already exists error', async () => {
4436-
const logger = require('../lib/logger').logger;
4437-
const warnSpy = spyOn(logger, 'warn').and.callThrough();
4438-
const errorSpy = spyOn(logger, 'error').and.callThrough();
4439-
const infoSpy = spyOn(logger, 'info').and.callThrough();
4440-
4441-
const logLevels = ['warn', 'info'];
4434+
fdescribe('log levels', () => {
4435+
const logLevels = ['warn', 'info', 'error'];
44424436

4437+
it_id('bd3929eb-85dd-4955-ac1d-5ba59ab1b9a3')(it)('should use log level for username already exists error', async () => {
44434438
for (const logLevel of logLevels) {
44444439
await reconfigureServer({
44454440
logLevels: {
44464441
usernameAlreadyExists: logLevel,
44474442
},
44484443
});
44494444

4450-
const username = `existingUser_${logLevel}`;
4451-
await Parse.User.signUp(username, 'password');
4445+
const logger = require('../lib/logger').logger;
4446+
spyOn(logger, 'warn').and.callFake(() => {});
4447+
spyOn(logger, 'error').and.callFake(() => {});
4448+
spyOn(logger, 'info').and.callFake(() => {});
44524449

4453-
try {
4454-
await Parse.User.signUp(username, 'password');
4455-
} catch (error) {
4456-
expect(error.code).toBe(Parse.Error.USERNAME_TAKEN);
4457-
expect(logger[logLevel]).toHaveBeenCalled();
4458-
['warn', 'error', 'info'].forEach(level => {
4459-
if (level !== logLevel) {
4460-
expect(logger[level]).not.toHaveBeenCalled();
4461-
}
4462-
});
4463-
}
4450+
await Parse.User.signUp('user', 'pass');
4451+
await expectAsync(Parse.User.signUp('user', 'pass')).toBeRejectedWith(
4452+
new Parse.Error(
4453+
Parse.Error.USERNAME_TAKEN,
4454+
'Account already exists for this username.'
4455+
)
4456+
);
44644457

4465-
warnSpy.calls.reset();
4466-
errorSpy.calls.reset();
4467-
infoSpy.calls.reset();
4458+
logLevels.forEach(level => {
4459+
expect(logger[level]).toHaveBeenCalledTimes(level === logLevel ? 1 : 0);
4460+
logger[level].calls.reset();
4461+
});
44684462
}
44694463
});
44704464
});

spec/helper.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ if (silent) {
150150
triggerAfter: 'silent',
151151
triggerBeforeError: 'silent',
152152
triggerBeforeSuccess: 'silent',
153+
usernameAlreadyExists: 'silent',
153154
};
154155
}
155156

src/RestWrite.js

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -739,10 +739,14 @@ RestWrite.prototype._validateUserName = function () {
739739
)
740740
.then(results => {
741741
if (results.length > 0) {
742-
throw new Parse.Error(
742+
const usernameError = new Parse.Error(
743743
Parse.Error.USERNAME_TAKEN,
744744
'Account already exists for this username.'
745745
);
746+
if (this.config.logLevels.usernameAlreadyExists !== 'silent') {
747+
logger[this.config.logLevels.usernameAlreadyExists](JSON.stringify(usernameError));
748+
}
749+
throw usernameError;
746750
}
747751
return;
748752
});
@@ -1561,10 +1565,10 @@ RestWrite.prototype.runDatabaseOperation = function () {
15611565
Parse.Error.USERNAME_TAKEN,
15621566
'Account already exists for this username.'
15631567
);
1564-
1565-
return this.config.loggerController[this.config.logLevels.usernameAlreadyExists](
1566-
JSON.stringify(usernameError)
1567-
);
1568+
if (this.config.logLevels.usernameAlreadyExists !== 'silent') {
1569+
logger[this.config.logLevels.usernameAlreadyExists](JSON.stringify(usernameError));
1570+
}
1571+
throw usernameError;
15681572
}
15691573

15701574
if (error && error.userInfo && error.userInfo.duplicated_field === 'email') {
@@ -1589,10 +1593,14 @@ RestWrite.prototype.runDatabaseOperation = function () {
15891593
)
15901594
.then(results => {
15911595
if (results.length > 0) {
1592-
throw new Parse.Error(
1596+
const usernameError = new Parse.Error(
15931597
Parse.Error.USERNAME_TAKEN,
15941598
'Account already exists for this username.'
15951599
);
1600+
if (this.config.logLevels.usernameAlreadyExists !== 'silent') {
1601+
logger[this.config.logLevels.usernameAlreadyExists](JSON.stringify(usernameError));
1602+
}
1603+
throw usernameError;
15961604
}
15971605
return this.config.database.find(
15981606
this.className,

0 commit comments

Comments
 (0)