@social-mail/social-mail-web-server 1.4.861 → 1.4.862
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/dist/common/Hashtags.js +2 -2
- package/dist/common/Hashtags.js.map +1 -1
- package/dist/common/globalEnv.js +1 -1
- package/dist/common/globalEnv.js.map +1 -1
- package/dist/common/spawnPromise.d.ts +1 -0
- package/dist/common/spawnPromise.d.ts.map +1 -1
- package/dist/common/spawnPromise.js +4 -2
- package/dist/common/spawnPromise.js.map +1 -1
- package/dist/server/model/entities/Contact.d.ts +1 -1
- package/dist/server/model/entities/Contact.d.ts.map +1 -1
- package/dist/server/model/entities/Contact.js +1 -1
- package/dist/server/model/entities/Contact.js.map +1 -1
- package/dist/server/model/entities/Domain.d.ts +2 -0
- package/dist/server/model/entities/Domain.d.ts.map +1 -1
- package/dist/server/model/entities/Domain.js.map +1 -1
- package/dist/server/model/entities/DomainKey.d.ts +1 -1
- package/dist/server/model/entities/DomainKey.d.ts.map +1 -1
- package/dist/server/model/entities/DomainKey.js +1 -1
- package/dist/server/model/entities/DomainKey.js.map +1 -1
- package/dist/server/model/entities/EmailTemplate.d.ts +1 -1
- package/dist/server/model/entities/EmailTemplate.d.ts.map +1 -1
- package/dist/server/model/entities/EmailTemplate.js +1 -1
- package/dist/server/model/entities/EmailTemplate.js.map +1 -1
- package/dist/server/model/entities/HostedDomain.d.ts +0 -3
- package/dist/server/model/entities/HostedDomain.d.ts.map +1 -1
- package/dist/server/model/entities/HostedDomain.js +0 -4
- package/dist/server/model/entities/HostedDomain.js.map +1 -1
- package/dist/server/model/entities/Mailbox.d.ts +6 -2
- package/dist/server/model/entities/Mailbox.d.ts.map +1 -1
- package/dist/server/model/entities/Mailbox.js +6 -2
- package/dist/server/model/entities/Mailbox.js.map +1 -1
- package/dist/server/model/entities/Tag.d.ts +1 -0
- package/dist/server/model/entities/Tag.d.ts.map +1 -1
- package/dist/server/model/entities/Tag.js +4 -0
- package/dist/server/model/entities/Tag.js.map +1 -1
- package/dist/server/model/events/AppFileEvents.js +2 -2
- package/dist/server/model/events/AppFileEvents.js.map +1 -1
- package/dist/server/model/events/AppFileTagEvents.js +1 -1
- package/dist/server/model/events/AppFileTagEvents.js.map +1 -1
- package/dist/server/model/events/ChannelConfigEvents.js +1 -1
- package/dist/server/model/events/ChannelConfigEvents.js.map +1 -1
- package/dist/server/model/events/ContactEvents.js +4 -4
- package/dist/server/model/events/ContactEvents.js.map +1 -1
- package/dist/server/model/events/DomainKeyEvents.js +1 -1
- package/dist/server/model/events/DomainKeyEvents.js.map +1 -1
- package/dist/server/model/events/EmailAddressEvents.js +2 -2
- package/dist/server/model/events/EmailAddressEvents.js.map +1 -1
- package/dist/server/model/events/EmailEngagementEvents.js +1 -1
- package/dist/server/model/events/EmailEngagementEvents.js.map +1 -1
- package/dist/server/model/events/EmailEvents.js +1 -1
- package/dist/server/model/events/EmailEvents.js.map +1 -1
- package/dist/server/model/events/EmailLogEvents.js +1 -1
- package/dist/server/model/events/EmailLogEvents.js.map +1 -1
- package/dist/server/model/events/EmailRecipientEvents.js +1 -1
- package/dist/server/model/events/EmailRecipientEvents.js.map +1 -1
- package/dist/server/model/events/EmailTagEvents.js +1 -1
- package/dist/server/model/events/EmailTagEvents.js.map +1 -1
- package/dist/server/model/events/EmailTemplateEvents.js +2 -2
- package/dist/server/model/events/EmailTemplateEvents.js.map +1 -1
- package/dist/server/model/events/FileContentEvents.js +3 -3
- package/dist/server/model/events/FileContentEvents.js.map +1 -1
- package/dist/server/model/events/HostedDomainEvents.d.ts.map +1 -1
- package/dist/server/model/events/HostedDomainEvents.js +6 -12
- package/dist/server/model/events/HostedDomainEvents.js.map +1 -1
- package/dist/server/model/events/MailboxContactEmailEvents.js +1 -1
- package/dist/server/model/events/MailboxContactEmailEvents.js.map +1 -1
- package/dist/server/model/events/MailboxContactEvents.js +1 -1
- package/dist/server/model/events/MailboxContactEvents.js.map +1 -1
- package/dist/server/model/events/MailboxEmailEvents.js +1 -1
- package/dist/server/model/events/MailboxEmailEvents.js.map +1 -1
- package/dist/server/model/events/MailboxEvents.d.ts +1 -0
- package/dist/server/model/events/MailboxEvents.d.ts.map +1 -1
- package/dist/server/model/events/MailboxEvents.js +30 -5
- package/dist/server/model/events/MailboxEvents.js.map +1 -1
- package/dist/server/model/events/MailboxSyncTargetEvents.js +1 -1
- package/dist/server/model/events/MailboxSyncTargetEvents.js.map +1 -1
- package/dist/server/model/events/TagEvents.d.ts.map +1 -1
- package/dist/server/model/events/TagEvents.js +14 -15
- package/dist/server/model/events/TagEvents.js.map +1 -1
- package/dist/server/model/events/TextDocumentEvents.js +3 -3
- package/dist/server/model/events/TextDocumentEvents.js.map +1 -1
- package/dist/server/model/events/UserAuthFactorEvents.d.ts +2 -0
- package/dist/server/model/events/UserAuthFactorEvents.d.ts.map +1 -1
- package/dist/server/model/events/UserAuthFactorEvents.js +5 -0
- package/dist/server/model/events/UserAuthFactorEvents.js.map +1 -1
- package/dist/server/services/EmailAddressService.d.ts.map +1 -1
- package/dist/server/services/EmailAddressService.js +2 -4
- package/dist/server/services/EmailAddressService.js.map +1 -1
- package/dist/server/services/domain-keys/DomainKeyService.d.ts.map +1 -1
- package/dist/server/services/domain-keys/DomainKeyService.js +2 -3
- package/dist/server/services/domain-keys/DomainKeyService.js.map +1 -1
- package/dist/server/smtp/services/MailAuthService.js +2 -2
- package/dist/server/smtp/services/MailAuthService.js.map +1 -1
- package/dist/server/smtp/services/MailReceiverService.js +3 -3
- package/dist/server/smtp/services/MailReceiverService.js.map +1 -1
- package/dist/server/workflows/smtp/MailDispatcherService.js +1 -1
- package/dist/server/workflows/smtp/MailDispatcherService.js.map +1 -1
- package/dist/server/workflows/smtp/PrepareEmailToSend.js +2 -2
- package/dist/server/workflows/smtp/PrepareEmailToSend.js.map +1 -1
- package/dist/tests/core/tags/tag-parser.d.ts +2 -0
- package/dist/tests/core/tags/tag-parser.d.ts.map +1 -0
- package/dist/tests/core/tags/tag-parser.js +17 -0
- package/dist/tests/core/tags/tag-parser.js.map +1 -0
- package/dist/tests/createTest.d.ts.map +1 -1
- package/dist/tests/createTest.js +4 -1
- package/dist/tests/createTest.js.map +1 -1
- package/dist/tests/services/smtp/auth.d.ts +1 -1
- package/dist/tests/services/smtp/auth.d.ts.map +1 -1
- package/dist/tests/services/smtp/auth.js +13 -71
- package/dist/tests/services/smtp/auth.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/wwwroot/routes/social-mail/public/dns/hosts/index.d.ts.map +1 -1
- package/dist/wwwroot/routes/social-mail/public/dns/hosts/index.js +0 -1
- package/dist/wwwroot/routes/social-mail/public/dns/hosts/index.js.map +1 -1
- package/package.json +1 -1
- package/run-test.js +20 -0
- package/src/common/Hashtags.ts +2 -2
- package/src/common/globalEnv.ts +1 -1
- package/src/common/spawnPromise.ts +5 -3
- package/src/server/model/entities/Contact.ts +2 -2
- package/src/server/model/entities/Domain.ts +2 -0
- package/src/server/model/entities/DomainKey.ts +2 -2
- package/src/server/model/entities/EmailTemplate.ts +2 -2
- package/src/server/model/entities/HostedDomain.ts +0 -5
- package/src/server/model/entities/Mailbox.ts +9 -2
- package/src/server/model/entities/Tag.ts +3 -0
- package/src/server/model/events/AppFileEvents.ts +2 -2
- package/src/server/model/events/AppFileTagEvents.ts +1 -1
- package/src/server/model/events/ChannelConfigEvents.ts +1 -1
- package/src/server/model/events/ContactEvents.ts +4 -4
- package/src/server/model/events/DomainKeyEvents.ts +1 -1
- package/src/server/model/events/EmailAddressEvents.ts +2 -2
- package/src/server/model/events/EmailEngagementEvents.ts +1 -1
- package/src/server/model/events/EmailEvents.ts +1 -1
- package/src/server/model/events/EmailLogEvents.ts +1 -1
- package/src/server/model/events/EmailRecipientEvents.ts +1 -1
- package/src/server/model/events/EmailTagEvents.ts +1 -1
- package/src/server/model/events/EmailTemplateEvents.ts +2 -2
- package/src/server/model/events/FileContentEvents.ts +3 -3
- package/src/server/model/events/HostedDomainEvents.ts +6 -13
- package/src/server/model/events/MailboxContactEmailEvents.ts +1 -1
- package/src/server/model/events/MailboxContactEvents.ts +1 -1
- package/src/server/model/events/MailboxEmailEvents.ts +1 -1
- package/src/server/model/events/MailboxEvents.ts +32 -5
- package/src/server/model/events/MailboxSyncTargetEvents.ts +1 -1
- package/src/server/model/events/TagEvents.ts +13 -14
- package/src/server/model/events/TextDocumentEvents.ts +3 -3
- package/src/server/model/events/UserAuthFactorEvents.ts +6 -0
- package/src/server/services/EmailAddressService.ts +2 -4
- package/src/server/services/domain-keys/DomainKeyService.ts +2 -3
- package/src/server/smtp/services/MailAuthService.ts +2 -2
- package/src/server/smtp/services/MailReceiverService.ts +3 -3
- package/src/server/workflows/smtp/MailDispatcherService.ts +1 -1
- package/src/server/workflows/smtp/PrepareEmailToSend.ts +2 -2
- package/src/tests/core/tags/tag-parser.ts +20 -0
- package/src/tests/core/tags/test-tags.ts +1 -1
- package/src/tests/createTest.ts +4 -1
- package/src/tests/services/smtp/auth.ts +13 -13
- package/src/wwwroot/routes/social-mail/public/dns/hosts/index.ts +0 -1
- package/test.js +44 -1
|
@@ -18,13 +18,13 @@ export default class TextDocumentEvents extends AuthenticatedEvents<TextDocument
|
|
|
18
18
|
x.fileContent.appFiles.some((af) =>
|
|
19
19
|
Sql.text.likeAny(af.path, p.readFileAccess)
|
|
20
20
|
|| af.templates.some((t) =>
|
|
21
|
-
t.
|
|
21
|
+
t.hostedDomain.domainUsers.some((d) => d.userID === p.userID)
|
|
22
22
|
|| t.mailbox.userMailboxes.some((u) => u.userID === p.userID)
|
|
23
|
-
|| t.mailbox.domain.domainUsers.some((u) => u.userID === p.userID))
|
|
23
|
+
|| t.mailbox.domain.hostedDomain.domainUsers.some((u) => u.userID === p.userID))
|
|
24
24
|
||
|
|
25
25
|
af.email.mailboxes.some((um) =>
|
|
26
26
|
um.mailbox.userMailboxes.some((mu) => mu.userID === p.userID)
|
|
27
|
-
|| um.mailbox.domain.domainUsers.some((du) => du.userID === p.userID && du.isAdmin === true)
|
|
27
|
+
|| um.mailbox.domain.hostedDomain.domainUsers.some((du) => du.userID === p.userID && du.isAdmin === true)
|
|
28
28
|
)
|
|
29
29
|
)
|
|
30
30
|
);
|
|
@@ -10,6 +10,7 @@ import { IEntityQuery } from "@entity-access/entity-access/dist/model/IFilterWit
|
|
|
10
10
|
import { AppStringHelper } from "../../../common/AppStringHelper.js";
|
|
11
11
|
import ExternalOtpInService from "../../services/external-otp-in/ExternalOtpInService.js";
|
|
12
12
|
import SocialMailContext from "../SocialMailContext.js";
|
|
13
|
+
import { ForeignKeyFilter } from "@entity-access/entity-access/dist/model/events/EntityEvents.js";
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
export default class UserAuthFactorEvents extends AuthenticatedEvents<UserAuthFactor> {
|
|
@@ -116,4 +117,9 @@ export default class UserAuthFactorEvents extends AuthenticatedEvents<UserAuthFa
|
|
|
116
117
|
}
|
|
117
118
|
}
|
|
118
119
|
|
|
120
|
+
onForeignKeyFilter(filter: ForeignKeyFilter<UserAuthFactor, any>): IEntityQuery<any> {
|
|
121
|
+
if (filter.is((x) => x.verificationID)) {
|
|
122
|
+
return filter.unfiltered();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
119
125
|
}
|
|
@@ -77,8 +77,7 @@ export default class EmailAddressService {
|
|
|
77
77
|
emailAddress = emailAddress.trim().toLocaleLowerCase();
|
|
78
78
|
using scope = globalServices.createScope();
|
|
79
79
|
const db = scope.resolve(SocialMailContext);
|
|
80
|
-
const mb = await db.mailboxes.where({ emailAddress }, (p) => (x) => x.emailAddress.emailAddress === p.emailAddress
|
|
81
|
-
&& x.domain.external === false)
|
|
80
|
+
const mb = await db.mailboxes.where({ emailAddress }, (p) => (x) => x.emailAddress.emailAddress === p.emailAddress)
|
|
82
81
|
.first();
|
|
83
82
|
return mb?.mailboxID > 0 ? mb.mailboxID : void 0;
|
|
84
83
|
}
|
|
@@ -88,8 +87,7 @@ export default class EmailAddressService {
|
|
|
88
87
|
emailAddress = emailAddress.trim().toLocaleLowerCase();
|
|
89
88
|
using scope = globalServices.createScope();
|
|
90
89
|
const db = scope.resolve(SocialMailContext);
|
|
91
|
-
return await db.mailboxes.where({ emailAddress }, (p) => (x) => x.emailAddress.emailAddress === p.emailAddress
|
|
92
|
-
&& x.domain.external === false)
|
|
90
|
+
return await db.mailboxes.where({ emailAddress }, (p) => (x) => x.emailAddress.emailAddress === p.emailAddress)
|
|
93
91
|
.first();
|
|
94
92
|
}
|
|
95
93
|
|
|
@@ -11,9 +11,8 @@ export default class DomainKeyService {
|
|
|
11
11
|
const db = scope.resolve(SocialMailContext);
|
|
12
12
|
const key = db.domainKeys
|
|
13
13
|
.where({ mailboxID}, (p) => (x) =>
|
|
14
|
-
x.domain.mailboxes.some((m) => m.mailboxID === p.mailboxID)
|
|
15
|
-
|
|
16
|
-
.include((x) => x.domain.domain)
|
|
14
|
+
x.hostedDomain.domain.mailboxes.some((m) => m.mailboxID === p.mailboxID))
|
|
15
|
+
.include((x) => x.hostedDomain.domain)
|
|
17
16
|
.first();
|
|
18
17
|
return key;
|
|
19
18
|
}
|
|
@@ -27,13 +27,13 @@ export default class MailAuthService {
|
|
|
27
27
|
|
|
28
28
|
const dkimSignerKey = await this.db.domainKeys
|
|
29
29
|
.where({ ids }, (p) => (x) => x.domainID in p.ids)
|
|
30
|
-
.include((x) => x.
|
|
30
|
+
.include((x) => x.hostedDomain.domain)
|
|
31
31
|
.first();
|
|
32
32
|
|
|
33
33
|
let seal = void 0;
|
|
34
34
|
if (dkimSignerKey) {
|
|
35
35
|
seal = {
|
|
36
|
-
signingDomain: dkimSignerKey.
|
|
36
|
+
signingDomain: dkimSignerKey.hostedDomain.domain.name,
|
|
37
37
|
selector: dkimSignerKey.name,
|
|
38
38
|
privateKey: dkimSignerKey.privateKey
|
|
39
39
|
};
|
|
@@ -128,7 +128,7 @@ export default class MailReceiverService {
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
if (mailbox
|
|
131
|
+
if (mailbox) {
|
|
132
132
|
if (!this.session.user) {
|
|
133
133
|
console.error(`Login required for ${address.address}`);
|
|
134
134
|
throw new SmtpError("Login required", SmtpStatusCodes.AuthenticationRequired);
|
|
@@ -244,13 +244,13 @@ export default class MailReceiverService {
|
|
|
244
244
|
|
|
245
245
|
const dkimSignerKey = await this.db.domainKeys
|
|
246
246
|
.where({ ids }, (p) => (x) => x.domainID in p.ids)
|
|
247
|
-
.include((x) => x.
|
|
247
|
+
.include((x) => x.hostedDomain.domain)
|
|
248
248
|
.first();
|
|
249
249
|
|
|
250
250
|
let seal = void 0;
|
|
251
251
|
if (dkimSignerKey) {
|
|
252
252
|
seal = {
|
|
253
|
-
signingDomain: dkimSignerKey.
|
|
253
|
+
signingDomain: dkimSignerKey.hostedDomain.domain.name,
|
|
254
254
|
selector: dkimSignerKey.name,
|
|
255
255
|
privateKey: dkimSignerKey.privateKey
|
|
256
256
|
};
|
|
@@ -162,7 +162,7 @@ export default class MailDispatcherService {
|
|
|
162
162
|
const dk = await dks.getDomainKey(senderID);
|
|
163
163
|
|
|
164
164
|
const signer = new DKIM({
|
|
165
|
-
domainName: dk.
|
|
165
|
+
domainName: dk.hostedDomain.domain.name,
|
|
166
166
|
keySelector: dk.name,
|
|
167
167
|
privateKey: dk.privateKey
|
|
168
168
|
});
|
|
@@ -53,7 +53,7 @@ export default class PrepareEmailToSend extends Workflow<number, string> {
|
|
|
53
53
|
&& x.workflowID === p.wid
|
|
54
54
|
)
|
|
55
55
|
.include((x) => [
|
|
56
|
-
x.senderEmail.mailbox.domain,
|
|
56
|
+
x.senderEmail.mailbox.domain.hostedDomain,
|
|
57
57
|
x.recipients.forEach((er) => er.emailAddress.domain)])
|
|
58
58
|
.first();
|
|
59
59
|
|
|
@@ -76,7 +76,7 @@ export default class PrepareEmailToSend extends Workflow<number, string> {
|
|
|
76
76
|
senderID: email.senderID,
|
|
77
77
|
emailID: x.emailID,
|
|
78
78
|
emailAddressID: x.emailAddressID,
|
|
79
|
-
external: email.senderEmail.mailbox
|
|
79
|
+
external: !email.senderEmail.mailbox.domain.hostedDomain,
|
|
80
80
|
to: [ x.replyTo ?? x.emailAddress.emailAddress]
|
|
81
81
|
}));
|
|
82
82
|
return outsiders;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import assert from "assert";
|
|
2
|
+
import Hashtags from "../../../common/Hashtags.js";
|
|
3
|
+
|
|
4
|
+
export default async function() {
|
|
5
|
+
|
|
6
|
+
const set = Hashtags.extract(data);
|
|
7
|
+
assert.strictEqual(4, set.size);
|
|
8
|
+
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const data = `Your Highlights
|
|
12
|
+
|
|
13
|
+
sdfdsfsd af asdfadsfasd lkj ;lksdj f;sdf lsdj fdlsf dsj f;
|
|
14
|
+
#shortfilm #Action #CastingCall #paid @Castyy_Official
|
|
15
|
+
https://t.co/M6J5Otlsdfsfsfsdfsdfasdfsfasfsd
|
|
16
|
+
Read more at Twitter <https://twitter.com//176235614760272325asfsdfdsf45141234320>
|
|
17
|
+
----------
|
|
18
|
+
sfdsf sdfsd;flj sd;fjk
|
|
19
|
+
----------
|
|
20
|
+
Read more at Twitter <https://twitter.com//17622779asfsadfdsfdasf28610701511>`;
|
package/src/tests/createTest.ts
CHANGED
|
@@ -157,7 +157,7 @@ export class testScope {
|
|
|
157
157
|
|
|
158
158
|
db.mailboxes.add({
|
|
159
159
|
username: "test",
|
|
160
|
-
domain,
|
|
160
|
+
domain: domain.domain,
|
|
161
161
|
});
|
|
162
162
|
|
|
163
163
|
await db.saveChanges();
|
|
@@ -282,6 +282,9 @@ export class testScope {
|
|
|
282
282
|
|
|
283
283
|
// verify access to mailbox...
|
|
284
284
|
if (!user.userMailboxes.some((s) => s.mailboxID === senderID)) {
|
|
285
|
+
if (mustFail) {
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
285
288
|
throw new EntityAccessError(`Cannot send mail.`);
|
|
286
289
|
}
|
|
287
290
|
|
|
@@ -3,19 +3,19 @@ import ESmtpClient from "../../../protocols/smtp/ESmtpClient.js";
|
|
|
3
3
|
|
|
4
4
|
export default async function () {
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
return true;
|
|
7
7
|
|
|
8
|
-
using c = await ESmtpClient.connect({
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
});
|
|
8
|
+
// using c = await ESmtpClient.connect({
|
|
9
|
+
// port: 25,
|
|
10
|
+
// host: "smtp.gmail.com",
|
|
11
|
+
// helo: "localhost",
|
|
12
|
+
// auth: {
|
|
13
|
+
// login: {
|
|
14
|
+
// username: "a",
|
|
15
|
+
// password: "b"
|
|
16
|
+
// }
|
|
17
|
+
// },
|
|
18
|
+
// logger: console.log
|
|
19
|
+
// });
|
|
20
20
|
|
|
21
21
|
}
|
|
@@ -25,7 +25,6 @@ export default class extends Page {
|
|
|
25
25
|
|
|
26
26
|
const emailDomains = await this.db.hostedDomains.asQuery()
|
|
27
27
|
.where(void 0, (p) => (x) => x.enableReceive === true
|
|
28
|
-
&& x.external === false
|
|
29
28
|
&& x.domainKeys.some((d) => d.domainKeyID > 0))
|
|
30
29
|
.include((x) => [x.domain, x.domainKeys])
|
|
31
30
|
.limit(100)
|
package/test.js
CHANGED
|
@@ -3,6 +3,7 @@ import path from "path";
|
|
|
3
3
|
import PostgreSqlDriver from "@entity-access/entity-access/dist/drivers/postgres/PostgreSqlDriver.js";
|
|
4
4
|
import { tmpdir } from "os";
|
|
5
5
|
import { existsSync, mkdirSync } from "fs";
|
|
6
|
+
import { spawnPromise } from "./dist/common/spawnPromise.js";
|
|
6
7
|
|
|
7
8
|
const host = process.env.POSTGRES_HOST ?? "localhost";
|
|
8
9
|
const postGresPort = Number(process.env.POSTGRES_PORT ?? 5432);
|
|
@@ -61,6 +62,48 @@ export default class TestRunner {
|
|
|
61
62
|
* @param {string} name
|
|
62
63
|
*/
|
|
63
64
|
static async runTest(name, thisParam) {
|
|
65
|
+
|
|
66
|
+
if (!testFile) {
|
|
67
|
+
const dbID = start++;
|
|
68
|
+
let db = `social-mail-test-${dbID}`;
|
|
69
|
+
const tPath = `${tmpdir()}/t/${dbID}`;
|
|
70
|
+
if(!existsSync(tPath)) {
|
|
71
|
+
mkdirSync(tPath, { recursive: true });
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const t1 = setTimeout(() => console.warn(`Test ${name} ran for more than 30 seconds`), 30000);
|
|
75
|
+
try {
|
|
76
|
+
const result = await spawnPromise("node", ["--enable-source-maps", "./run-test.js", name], {
|
|
77
|
+
logData: false,
|
|
78
|
+
logCommand: false,
|
|
79
|
+
throwOnFail: true,
|
|
80
|
+
logError: false,
|
|
81
|
+
env: {
|
|
82
|
+
SOCIAL_MAIL_DB_SSL: "false",
|
|
83
|
+
SOCIAL_MAIL_TEST: "true",
|
|
84
|
+
SOCIAL_MAIL_AV: "none",
|
|
85
|
+
SOCIAL_MAIL_TMP_PATH: tPath,
|
|
86
|
+
SOCIAL_MAIL_DB_DATABASE: db,
|
|
87
|
+
SOCIAL_MAIL_DB_USER: "postgres",
|
|
88
|
+
SOCIAL_MAIL_DB_PASSWORD: "abcd123",
|
|
89
|
+
SOCIAL_MAIL_DB_HOST: host,
|
|
90
|
+
SOCIAL_MAIL_DB_PORT: postGresPort,
|
|
91
|
+
SOCIAL_MAIL_SECRET_KEY: "abcd123",
|
|
92
|
+
SOCIAL_MAIL_AV_PORT: "false"
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
if (result.status > 0) {
|
|
96
|
+
results.unshift({ name, error: result.all });
|
|
97
|
+
} else {
|
|
98
|
+
results.push({ name, log: result.all });
|
|
99
|
+
}
|
|
100
|
+
} catch (e) {
|
|
101
|
+
results.unshift({ name, error: e });
|
|
102
|
+
}
|
|
103
|
+
clearTimeout(t1);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
|
|
64
107
|
const moduleExports = await import(name);
|
|
65
108
|
const { default: d } = moduleExports;
|
|
66
109
|
if (!d) {
|
|
@@ -121,7 +164,7 @@ for (const { error, name } of results) {
|
|
|
121
164
|
exitCode = 1;
|
|
122
165
|
failed++;
|
|
123
166
|
console.error(`${name} failed`);
|
|
124
|
-
console.error(error?.stack ?? error);
|
|
167
|
+
// console.error(error?.stack ?? error);
|
|
125
168
|
continue;
|
|
126
169
|
}
|
|
127
170
|
console.log(`${name} executed.`);
|