@trunkrs/common 4.2.0 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/models/errors/email/EmailAddressVerificationFailedError.d.ts +5 -0
- package/models/errors/email/EmailAddressVerificationFailedError.js +14 -0
- package/models/errors/email/EmailAddressVerificationFailedError.js.map +1 -0
- package/models/errors/email/EmailDomainNotAllowedOnEnvironmentError.d.ts +5 -0
- package/models/errors/email/EmailDomainNotAllowedOnEnvironmentError.js +14 -0
- package/models/errors/email/EmailDomainNotAllowedOnEnvironmentError.js.map +1 -0
- package/models/errors/email/EmailHasNoBodyEmailError.d.ts +5 -0
- package/models/errors/email/{EmailValidationError.js → EmailHasNoBodyEmailError.js} +4 -4
- package/models/errors/email/EmailHasNoBodyEmailError.js.map +1 -0
- package/models/errors/email/EmailHasNoSubjectError.d.ts +5 -0
- package/models/errors/email/EmailHasNoSubjectError.js +14 -0
- package/models/errors/email/EmailHasNoSubjectError.js.map +1 -0
- package/models/errors/email/index.d.ts +4 -1
- package/models/errors/email/index.js +9 -3
- package/models/errors/email/index.js.map +1 -1
- package/package.json +1 -1
- package/services/email/EmailClient/index.d.ts +0 -1
- package/services/email/EmailClient/index.js +6 -12
- package/services/email/EmailClient/index.js.map +1 -1
- package/services/email/NodemailerEmailClient.js +6 -3
- package/services/email/NodemailerEmailClient.js.map +1 -1
- package/services/email/__tests__/NodemailerEmailClient.spec.js +5 -4
- package/services/email/__tests__/NodemailerEmailClient.spec.js.map +1 -1
- package/models/errors/email/EmailValidationError.d.ts +0 -5
- package/models/errors/email/EmailValidationError.js.map +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const ErrorBase_1 = __importDefault(require("../ErrorBase"));
|
|
7
|
+
class EmailAddressVerificationFailedError extends ErrorBase_1.default {
|
|
8
|
+
constructor(foundAddress) {
|
|
9
|
+
super();
|
|
10
|
+
this.message = `The email ${foundAddress} is not a valid email.`;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.default = EmailAddressVerificationFailedError;
|
|
14
|
+
//# sourceMappingURL=EmailAddressVerificationFailedError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailAddressVerificationFailedError.js","sourceRoot":"","sources":["../../../../models/errors/email/EmailAddressVerificationFailedError.ts"],"names":[],"mappings":";;;;;AAAA,6DAAoC;AAEpC,MAAM,mCAAoC,SAAQ,mBAAS;IACzD,YAAmB,YAAoB;QACrC,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,OAAO,GAAG,aAAa,YAAY,wBAAwB,CAAA;IAClE,CAAC;CACF;AAED,kBAAe,mCAAmC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const ErrorBase_1 = __importDefault(require("../ErrorBase"));
|
|
7
|
+
class EmailDomainNotAllowedOnEnvironmentError extends ErrorBase_1.default {
|
|
8
|
+
constructor(stage, allowedDomains, foundAddresses) {
|
|
9
|
+
super();
|
|
10
|
+
this.message = `The email addresses ${foundAddresses}, are not allowed on Environment: "${stage}". Only addresses ending in ${allowedDomains} are considered as valid.`;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.default = EmailDomainNotAllowedOnEnvironmentError;
|
|
14
|
+
//# sourceMappingURL=EmailDomainNotAllowedOnEnvironmentError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailDomainNotAllowedOnEnvironmentError.js","sourceRoot":"","sources":["../../../../models/errors/email/EmailDomainNotAllowedOnEnvironmentError.ts"],"names":[],"mappings":";;;;;AAAA,6DAAoC;AAEpC,MAAM,uCAAwC,SAAQ,mBAAS;IAC7D,YACE,KAAa,EACb,cAAwB,EACxB,cAAwB;QAExB,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,OAAO,GAAG,uBAAuB,cAAc,sCAAsC,KAAK,+BAA+B,cAAc,2BAA2B,CAAA;IACzK,CAAC;CACF;AAED,kBAAe,uCAAuC,CAAA"}
|
|
@@ -4,11 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const ErrorBase_1 = __importDefault(require("../ErrorBase"));
|
|
7
|
-
class
|
|
7
|
+
class EmailHasNoBodyError extends ErrorBase_1.default {
|
|
8
8
|
constructor() {
|
|
9
9
|
super();
|
|
10
|
-
this.message = `
|
|
10
|
+
this.message = `The email you are about to send has no HTML or TEXT body.`;
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
exports.default =
|
|
14
|
-
//# sourceMappingURL=
|
|
13
|
+
exports.default = EmailHasNoBodyError;
|
|
14
|
+
//# sourceMappingURL=EmailHasNoBodyEmailError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailHasNoBodyEmailError.js","sourceRoot":"","sources":["../../../../models/errors/email/EmailHasNoBodyEmailError.ts"],"names":[],"mappings":";;;;;AAAA,6DAAoC;AAEpC,MAAM,mBAAoB,SAAQ,mBAAS;IACzC;QACE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,OAAO,GAAG,2DAA2D,CAAA;IAC5E,CAAC;CACF;AAED,kBAAe,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const ErrorBase_1 = __importDefault(require("../ErrorBase"));
|
|
7
|
+
class EmailHasNoSubjectError extends ErrorBase_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.message = `The email you are about to send has no subject configured.`;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.default = EmailHasNoSubjectError;
|
|
14
|
+
//# sourceMappingURL=EmailHasNoSubjectError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailHasNoSubjectError.js","sourceRoot":"","sources":["../../../../models/errors/email/EmailHasNoSubjectError.ts"],"names":[],"mappings":";;;;;AAAA,6DAAoC;AAEpC,MAAM,sBAAuB,SAAQ,mBAAS;IAC5C;QACE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,OAAO,GAAG,4DAA4D,CAAA;IAC7E,CAAC;CACF;AAED,kBAAe,sBAAsB,CAAA"}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
export { default as NoEmailBodyError } from './EmailValidationError';
|
|
2
1
|
export { default as TemplateNotFoundError } from './TemplateNotFoundError';
|
|
2
|
+
export { default as EmailAddressVerificationFailedError } from './EmailAddressVerificationFailedError';
|
|
3
|
+
export { default as EmailDomainNotAllowedOnEnvironmentError } from './EmailDomainNotAllowedOnEnvironmentError';
|
|
4
|
+
export { default as EmailHasNoSubjectError } from './EmailHasNoSubjectError';
|
|
5
|
+
export { default as EmailHasNoBodyEmailError } from './EmailHasNoBodyEmailError';
|
|
@@ -3,9 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
var EmailValidationError_1 = require("./EmailValidationError");
|
|
8
|
-
Object.defineProperty(exports, "NoEmailBodyError", { enumerable: true, get: function () { return __importDefault(EmailValidationError_1).default; } });
|
|
6
|
+
exports.EmailHasNoBodyEmailError = exports.EmailHasNoSubjectError = exports.EmailDomainNotAllowedOnEnvironmentError = exports.EmailAddressVerificationFailedError = exports.TemplateNotFoundError = void 0;
|
|
9
7
|
var TemplateNotFoundError_1 = require("./TemplateNotFoundError");
|
|
10
8
|
Object.defineProperty(exports, "TemplateNotFoundError", { enumerable: true, get: function () { return __importDefault(TemplateNotFoundError_1).default; } });
|
|
9
|
+
var EmailAddressVerificationFailedError_1 = require("./EmailAddressVerificationFailedError");
|
|
10
|
+
Object.defineProperty(exports, "EmailAddressVerificationFailedError", { enumerable: true, get: function () { return __importDefault(EmailAddressVerificationFailedError_1).default; } });
|
|
11
|
+
var EmailDomainNotAllowedOnEnvironmentError_1 = require("./EmailDomainNotAllowedOnEnvironmentError");
|
|
12
|
+
Object.defineProperty(exports, "EmailDomainNotAllowedOnEnvironmentError", { enumerable: true, get: function () { return __importDefault(EmailDomainNotAllowedOnEnvironmentError_1).default; } });
|
|
13
|
+
var EmailHasNoSubjectError_1 = require("./EmailHasNoSubjectError");
|
|
14
|
+
Object.defineProperty(exports, "EmailHasNoSubjectError", { enumerable: true, get: function () { return __importDefault(EmailHasNoSubjectError_1).default; } });
|
|
15
|
+
var EmailHasNoBodyEmailError_1 = require("./EmailHasNoBodyEmailError");
|
|
16
|
+
Object.defineProperty(exports, "EmailHasNoBodyEmailError", { enumerable: true, get: function () { return __importDefault(EmailHasNoBodyEmailError_1).default; } });
|
|
11
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../models/errors/email/index.ts"],"names":[],"mappings":";;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../models/errors/email/index.ts"],"names":[],"mappings":";;;;;;AAAA,iEAA0E;AAAjE,+IAAA,OAAO,OAAyB;AACzC,6FAAsG;AAA7F,2KAAA,OAAO,OAAuC;AACvD,qGAA8G;AAArG,mLAAA,OAAO,OAA2C;AAC3D,mEAA4E;AAAnE,iJAAA,OAAO,OAA0B;AAC1C,uEAAgF;AAAvE,qJAAA,OAAO,OAA4B"}
|
package/package.json
CHANGED
|
@@ -5,6 +5,5 @@ declare abstract class EmailClient<TConfig extends EmailClientConfig = EmailClie
|
|
|
5
5
|
sendTemplatedEmail<TValues>(params: SendTemplatedEmailRequest<TValues>): Promise<void>;
|
|
6
6
|
protected abstract sendEmail<TValues>(params: SendTemplatedEmailRequest<TValues>): Promise<void>;
|
|
7
7
|
private validateRecipientDomains;
|
|
8
|
-
private areRecipientDomainsInvalid;
|
|
9
8
|
}
|
|
10
9
|
export default EmailClient;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
3
|
+
const email_1 = require("../../../models/errors/email");
|
|
7
4
|
class EmailClient {
|
|
8
5
|
constructor(config) {
|
|
9
6
|
this.config = config;
|
|
@@ -23,16 +20,13 @@ class EmailClient {
|
|
|
23
20
|
return;
|
|
24
21
|
}
|
|
25
22
|
const { allowedDomains } = validateRecipientDomains;
|
|
26
|
-
const
|
|
27
|
-
if (hasInvalidRecipientDomains) {
|
|
28
|
-
throw new EmailValidationError_1.default();
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
areRecipientDomainsInvalid(addresses, allowedDomains) {
|
|
32
|
-
return addresses.some((address) => {
|
|
23
|
+
const invalidDomains = to.filter((address) => {
|
|
33
24
|
const [, domain] = address.split('@');
|
|
34
|
-
return !allowedDomains.
|
|
25
|
+
return !allowedDomains.some((allowedDomain) => allowedDomain === domain);
|
|
35
26
|
});
|
|
27
|
+
if (invalidDomains) {
|
|
28
|
+
throw new email_1.EmailDomainNotAllowedOnEnvironmentError(stage, allowedDomains, to);
|
|
29
|
+
}
|
|
36
30
|
}
|
|
37
31
|
}
|
|
38
32
|
exports.default = EmailClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../services/email/EmailClient/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../services/email/EmailClient/index.ts"],"names":[],"mappings":";;AAAA,wDAAsF;AAGtF,MAAe,WAAW;IAGxB,YAAyC,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IASrD,KAAK,CAAC,kBAAkB,CAC7B,MAA0C;QAE1C,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAExC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAMO,wBAAwB,CAAC,EAAY;QAC3C,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAEvD,IAAI,CAAC,wBAAwB,EAAE;YAC7B,OAAM;SACP;QAED,MAAM,oBAAoB,GACxB,wBAAwB,CAAC,oBAAoB;YAC7C,wBAAwB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAE/D,IAAI,oBAAoB,EAAE;YACxB,OAAM;SACP;QACD,MAAM,EAAE,cAAc,EAAE,GAAG,wBAAwB,CAAA;QAEnD,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAErC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,KAAK,MAAM,CAAC,CAAA;QAC1E,CAAC,CAAC,CAAA;QAEF,IAAI,cAAc,EAAE;YAClB,MAAM,IAAI,+CAAuC,CAC/C,KAAK,EACL,cAAc,EACd,EAAE,CACH,CAAA;SACF;IACH,CAAC;CACF;AAED,kBAAe,WAAW,CAAA"}
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const EmailClient_1 = __importDefault(require("./EmailClient"));
|
|
7
|
-
const
|
|
7
|
+
const email_1 = require("../../models/errors/email");
|
|
8
8
|
class NodemailerEmailClient extends EmailClient_1.default {
|
|
9
9
|
constructor(config) {
|
|
10
10
|
super(config);
|
|
@@ -46,8 +46,11 @@ class NodemailerEmailClient extends EmailClient_1.default {
|
|
|
46
46
|
const hasEmailBody = html || text;
|
|
47
47
|
const noEmailBodyErrorCondition = !hasEmailBody && requireBody;
|
|
48
48
|
const noSubjectErrorCondition = !subject && requireSubject;
|
|
49
|
-
if (noEmailBodyErrorCondition
|
|
50
|
-
throw new
|
|
49
|
+
if (noEmailBodyErrorCondition) {
|
|
50
|
+
throw new email_1.EmailHasNoBodyEmailError();
|
|
51
|
+
}
|
|
52
|
+
if (noSubjectErrorCondition) {
|
|
53
|
+
throw new email_1.EmailHasNoSubjectError();
|
|
51
54
|
}
|
|
52
55
|
}
|
|
53
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodemailerEmailClient.js","sourceRoot":"","sources":["../../../services/email/NodemailerEmailClient.ts"],"names":[],"mappings":";;;;;AAGA,gEAAuC;AAOvC,
|
|
1
|
+
{"version":3,"file":"NodemailerEmailClient.js","sourceRoot":"","sources":["../../../services/email/NodemailerEmailClient.ts"],"names":[],"mappings":";;;;;AAGA,gEAAuC;AAOvC,qDAGkC;AAWlC,MAAM,qBAAsB,SAAQ,qBAA6B;IAC/D,YAAmB,MAAwB;QACzC,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;IAUS,KAAK,CAAC,SAAS,CACvB,MAA0C;QAE1C,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,MAAM,CAAA;QAChE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,uBAAuB,CACxD,YAAY,EACZ,cAAc,CACf,CAAA;QACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;QAEhC,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;QAErE,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IACpC,CAAC;IAEO,oBAAoB,CAC1B,EAAY,EACZ,KAAmB,EACnB,WAA0B;QAE1B,MAAM,iBAAiB,GACrB,WAAW;YACX,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC/B,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,WAAW,EAAE,UAAU,CAAC,QAAQ;gBAChC,OAAO,EAAE,UAAU,CAAC,IAAI;aACzB,CAAC,CAAC,CAAA;QAEL,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAC5B,MAAM,WAAW,GAAgB;YAC/B,IAAI;YACJ,EAAE;YACF,WAAW,EAAE,iBAAiB;YAC9B,GAAG,KAAK;SACT,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAEjC,IAAI,SAAS,EAAE;YACb,WAAW,CAAC,GAAG,GAAG;gBAChB,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,SAAS;aACnB,CAAA;SACF;QAED,OAAO,WAAW,CAAA;IACpB,CAAC;IAEO,oBAAoB,CAAC,OAAqB;QAChD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;QACvC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAEnD,MAAM,YAAY,GAAG,IAAI,IAAI,IAAI,CAAA;QACjC,MAAM,yBAAyB,GAAG,CAAC,YAAY,IAAI,WAAW,CAAA;QAC9D,MAAM,uBAAuB,GAAG,CAAC,OAAO,IAAI,cAAc,CAAA;QAE1D,IAAI,yBAAyB,EAAE;YAC7B,MAAM,IAAI,gCAAwB,EAAE,CAAA;SACrC;QAED,IAAI,uBAAuB,EAAE;YAC3B,MAAM,IAAI,8BAAsB,EAAE,CAAA;SACnC;IACH,CAAC;CACF;AAED,kBAAe,qBAAqB,CAAA"}
|
|
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const faker_1 = require("faker");
|
|
7
7
|
const NodemailerEmailClient_1 = __importDefault(require("../NodemailerEmailClient"));
|
|
8
8
|
const Environment_1 = __importDefault(require("../../../models/enum/Environment"));
|
|
9
|
-
const
|
|
9
|
+
const EmailHasNoBodyEmailError_1 = __importDefault(require("../../../models/errors/email/EmailHasNoBodyEmailError"));
|
|
10
|
+
const email_1 = require("../../../models/errors/email");
|
|
10
11
|
const createMockMailer = () => ({
|
|
11
12
|
sendMail: jest.fn(),
|
|
12
13
|
});
|
|
@@ -60,11 +61,11 @@ describe('NodemailerEmailClient', () => {
|
|
|
60
61
|
templateValues: { name: 'sender' },
|
|
61
62
|
};
|
|
62
63
|
mockSESTemplateClient.createEmailFromTemplate.mockResolvedValueOnce({});
|
|
63
|
-
await expect(async () => sut.sendTemplatedEmail(params)).rejects.toThrow(
|
|
64
|
+
await expect(async () => sut.sendTemplatedEmail(params)).rejects.toThrow(EmailHasNoBodyEmailError_1.default);
|
|
64
65
|
mockSESTemplateClient.createEmailFromTemplate.mockResolvedValueOnce({
|
|
65
66
|
text: 'A body',
|
|
66
67
|
});
|
|
67
|
-
await expect(async () => sut.sendTemplatedEmail(params)).rejects.toThrow(
|
|
68
|
+
await expect(async () => sut.sendTemplatedEmail(params)).rejects.toThrow(email_1.EmailHasNoSubjectError);
|
|
68
69
|
});
|
|
69
70
|
it('Should throw an error if attempting to send an email from a non-whitelisted domain.', async () => {
|
|
70
71
|
config = createConfig('foo@bar.baz', Environment_1.default.Dev, {
|
|
@@ -76,7 +77,7 @@ describe('NodemailerEmailClient', () => {
|
|
|
76
77
|
templateName: 'a template',
|
|
77
78
|
templateValues: { name: 'sender' },
|
|
78
79
|
};
|
|
79
|
-
await expect(async () => sut.sendTemplatedEmail(params)).rejects.toThrow(
|
|
80
|
+
await expect(async () => sut.sendTemplatedEmail(params)).rejects.toThrow(email_1.EmailDomainNotAllowedOnEnvironmentError);
|
|
80
81
|
});
|
|
81
82
|
});
|
|
82
83
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodemailerEmailClient.spec.js","sourceRoot":"","sources":["../../../../services/email/__tests__/NodemailerEmailClient.spec.ts"],"names":[],"mappings":";;;;;AAAA,iCAA4B;AAI5B,qFAEiC;AACjC,mFAA0D;AAE1D,
|
|
1
|
+
{"version":3,"file":"NodemailerEmailClient.spec.js","sourceRoot":"","sources":["../../../../services/email/__tests__/NodemailerEmailClient.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EmailValidationError.js","sourceRoot":"","sources":["../../../../models/errors/email/EmailValidationError.ts"],"names":[],"mappings":";;;;;AAAA,6DAAoC;AAEpC,MAAM,oBAAqB,SAAQ,mBAAS;IAC1C;QACE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,OAAO,GAAG,6FAA6F,CAAA;IAC9G,CAAC;CACF;AAED,kBAAe,oBAAoB,CAAA"}
|