67 lines
2.1 KiB
TypeScript
67 lines
2.1 KiB
TypeScript
|
|
import { expect, tap } from '@git.zone/tstest/tapbundle';
|
||
|
|
import * as smartsmtp from '../ts/index.js';
|
||
|
|
|
||
|
|
import { Qenv } from '@push.rocks/qenv';
|
||
|
|
import * as smartmail from '@push.rocks/smartmail';
|
||
|
|
|
||
|
|
const testQenv = new Qenv('./', './.nogit');
|
||
|
|
|
||
|
|
let testSmartsmtp: smartsmtp.Smartsmtp;
|
||
|
|
|
||
|
|
const requireEnv = async (envNameArg: string): Promise<string> => {
|
||
|
|
const envValue = await testQenv.getEnvVarOnDemand(envNameArg);
|
||
|
|
if (!envValue) {
|
||
|
|
throw new Error(`Missing required environment variable: ${envNameArg}`);
|
||
|
|
}
|
||
|
|
return envValue;
|
||
|
|
};
|
||
|
|
|
||
|
|
tap.test('should create a direct smartsmtp transport', async () => {
|
||
|
|
const smartsmtpInstance = await smartsmtp.Smartsmtp.createSmartsmtpSendmail();
|
||
|
|
expect(smartsmtpInstance).toBeInstanceOf(smartsmtp.Smartsmtp);
|
||
|
|
});
|
||
|
|
|
||
|
|
tap.test('should run SMTP integration flow', async () => {
|
||
|
|
if (process.env.SMARTSMTP_RUN_INTEGRATION_TESTS !== 'true') {
|
||
|
|
console.log('Skipping SMTP integration test. Set SMARTSMTP_RUN_INTEGRATION_TESTS=true to run it.');
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
testSmartsmtp = await smartsmtp.Smartsmtp.createSmartsmtpWithRelay({
|
||
|
|
smtpServer: await requireEnv('SMTP_SERVER'),
|
||
|
|
smtpUser: await requireEnv('SMTP_USER'),
|
||
|
|
smtpPassword: await requireEnv('SMTP_PASSWORD'),
|
||
|
|
});
|
||
|
|
expect(testSmartsmtp).toBeInstanceOf(smartsmtp.Smartsmtp);
|
||
|
|
|
||
|
|
const result = await testSmartsmtp.sendSmartMail(
|
||
|
|
new smartmail.Smartmail({
|
||
|
|
body: '',
|
||
|
|
from: 'smartsmtp@mail.lossless.one',
|
||
|
|
subject: 'this is a test message',
|
||
|
|
}),
|
||
|
|
'sandbox@mail.git.zone'
|
||
|
|
);
|
||
|
|
console.log(result);
|
||
|
|
});
|
||
|
|
|
||
|
|
tap.test('should run sendmail integration flow', async () => {
|
||
|
|
if (process.env.SMARTSMTP_RUN_SENDMAIL_TESTS !== 'true') {
|
||
|
|
console.log('Skipping sendmail integration test. Set SMARTSMTP_RUN_SENDMAIL_TESTS=true to run it.');
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
const smartsmtpInstance = await smartsmtp.Smartsmtp.createSmartsmtpSendmail();
|
||
|
|
const result = await smartsmtpInstance.sendSmartMail(
|
||
|
|
new smartmail.Smartmail({
|
||
|
|
body: 'hi there',
|
||
|
|
from: 'phil@lossless.com',
|
||
|
|
subject: 'this is a sendmail test message',
|
||
|
|
}),
|
||
|
|
'phil@kunz.io'
|
||
|
|
);
|
||
|
|
console.log(result);
|
||
|
|
});
|
||
|
|
|
||
|
|
export default tap.start();
|