Skip to content

Commit 6d2aa67

Browse files
committed
Update model, provider, and configuration to allow a from address
1 parent 647ff8a commit 6d2aa67

File tree

7 files changed

+40
-7
lines changed

7 files changed

+40
-7
lines changed

Tasks/emailReportTask/config/ConfigurationProvider.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,10 @@ export class ConfigurationProvider implements IConfigurationProvider {
8989
throw new InputError("Email subject not set");
9090
}
9191

92+
// From Address
93+
const fromAddress = tl.getInput(TaskConstants.FROMADDRESS_INPUTKEY, true);
94+
95+
9296
// Optional inputs
9397
const toAddresses = tl.getInput(TaskConstants.TOADDRESS_INPUTKEY, false);
9498
const ccAddresses = tl.getInput(TaskConstants.CCADDRESS_INPUTKEY, false);
@@ -101,7 +105,7 @@ export class ConfigurationProvider implements IConfigurationProvider {
101105

102106
const defaultDomain = tl.getInput(TaskConstants.DEFAULTDOMAIN_INPUTKEY, true);
103107

104-
this.mailConfiguration = new MailConfiguration(mailSubject, toRecipientsConfiguration, ccRecipientsConfiguration, smtpConfig, defaultDomain);
108+
this.mailConfiguration = new MailConfiguration(fromAddress, mailSubject, toRecipientsConfiguration, ccRecipientsConfiguration, smtpConfig, defaultDomain);
105109
}
106110

107111
private initReportDataConfiguration(): void {

Tasks/emailReportTask/config/TaskConstants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export class TaskConstants {
77
public static readonly MAXTESTFAILURESTOSHOW_INPUTKEY = "maxTestFailuresToShow";
88
public static readonly GROUPTESTSUMMARYBY_INPUTKEY = "groupTestSummaryByStr";
99
public static readonly INCLUDERESULTS_INPUTKEY = "includeResultsStr";
10+
public static readonly FROMADDRESS_INPUTKEY = "fromAddress";
1011
public static readonly TOADDRESS_INPUTKEY = "toAddress";
1112
public static readonly CCADDRESS_INPUTKEY = "ccAddress";
1213
public static readonly INCLUDEINTO_INPUTKEY = "includeInToSectionStr";

Tasks/emailReportTask/config/mail/MailConfiguration.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ import { SmtpConfiguration } from "./SmtpConfiguration";
33

44
export class MailConfiguration {
55

6+
private fromAddress: string;
67
private mailSubject: string;
78
private toRecipientsConfig: RecipientsConfiguration;
89
private ccRecipientsConfig: RecipientsConfiguration;
910
private smtpConfig: SmtpConfiguration;
1011
private defaultDomain: string;
1112

12-
constructor($mailSubject: string, $toRecipientsConfig: RecipientsConfiguration, $ccRecipientsConfig: RecipientsConfiguration, $smtpConfig: SmtpConfiguration, $defaultDomain: string) {
13+
constructor($fromAddress: string, $mailSubject: string, $toRecipientsConfig: RecipientsConfiguration, $ccRecipientsConfig: RecipientsConfiguration, $smtpConfig: SmtpConfiguration, $defaultDomain: string) {
14+
this.fromAddress = $fromAddress;
1315
this.mailSubject = $mailSubject;
1416
this.toRecipientsConfig = $toRecipientsConfig;
1517
this.ccRecipientsConfig = $ccRecipientsConfig;
@@ -25,6 +27,14 @@ export class MailConfiguration {
2527
return this.defaultDomain;
2628
}
2729

30+
/**
31+
* Getter $fromAddress
32+
* @return {string}
33+
*/
34+
public get $fromAddress(): string {
35+
return this.fromAddress;
36+
}
37+
2838
/**
2939
* Getter $mailSubject
3040
* @return {string}

Tasks/emailReportTask/model/viewmodel/MailAddressViewModel.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ export class MailAddressViewModel {
1515

1616
private defaultDomain: string;
1717

18-
constructor(report: Report, mailConfig: MailConfiguration) {
19-
this.from = mailConfig.$smtpConfig.$userName;
18+
constructor(report: Report, mailConfig: MailConfiguration) {
19+
this.from = StringUtils.isNullOrWhiteSpace(mailConfig.$fromAddress) ? mailConfig.$smtpConfig.$userName : mailConfig.$fromAddress;
2020
this.defaultDomain = mailConfig.$defaultDomain;
2121

2222
console.log("computing email addresses for to section");

Tasks/emailReportTask/task.dev.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,15 @@
7575
"DisableManageLink": "True"
7676
},
7777
"groupName": "emailConfiguration"
78+
},
79+
{
80+
"name": "fromAddress",
81+
"type": "string",
82+
"label": "From",
83+
"defaultValue": "",
84+
"required": false,
85+
"helpMarkDown": "Sender email address.",
86+
"groupName": "emailConfiguration"
7887
},
7988
{
8089
"name": "toAddress",
@@ -231,4 +240,4 @@
231240
"target": "Index.js"
232241
}
233242
}
234-
}
243+
}

Tasks/emailReportTask/task.prod.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,15 @@
7676
},
7777
"groupName": "emailConfiguration"
7878
},
79+
{
80+
"name": "fromAddress",
81+
"type": "string",
82+
"label": "From",
83+
"defaultValue": "",
84+
"required": false,
85+
"helpMarkDown": "Sender email address.",
86+
"groupName": "emailConfiguration"
87+
},
7988
{
8089
"name": "toAddress",
8190
"type": "string",
@@ -231,4 +240,4 @@
231240
"target": "Index.js"
232241
}
233242
}
234-
}
243+
}

Tasks/emailReportTask/tests/__e_to_e_tests__/InvokeTest.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export class MockConfigProvider implements IConfigurationProvider {
4646
}
4747

4848
getMailConfiguration(): MailConfiguration {
49-
return new MailConfiguration("[{environmentStatus}] {passPercentage} tests passed",
49+
return new MailConfiguration("[email protected]", "[{environmentStatus}] {passPercentage} tests passed",
5050
new RecipientsConfiguration("[email protected]", false, false, false, false),
5151
new RecipientsConfiguration("", false, false, false, false),
5252
new SmtpConfiguration(smtpUser, smtpPassword, "smtp.live.com", true), "test.com");

0 commit comments

Comments
 (0)