Skip to content

Commit 1b4d717

Browse files
CCM-10591: Lambda Boilerplate
1 parent 11d301a commit 1b4d717

File tree

6 files changed

+441
-8
lines changed

6 files changed

+441
-8
lines changed
Lines changed: 260 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,260 @@
1+
<html><head><meta charset="utf-8"/><title>Test Report</title><style type="text/css">html,
2+
body {
3+
font-family: Arial, Helvetica, sans-serif;
4+
font-size: 1rem;
5+
margin: 0;
6+
padding: 0;
7+
color: #333;
8+
}
9+
body {
10+
padding: 2rem 1rem;
11+
font-size: 0.85rem;
12+
}
13+
.jesthtml-content {
14+
margin: 0 auto;
15+
max-width: 70rem;
16+
}
17+
header {
18+
display: flex;
19+
align-items: center;
20+
}
21+
#title {
22+
margin: 0;
23+
flex-grow: 1;
24+
}
25+
#logo {
26+
height: 4rem;
27+
}
28+
#timestamp {
29+
color: #777;
30+
margin-top: 0.5rem;
31+
}
32+
33+
/** SUMMARY */
34+
#summary {
35+
color: #333;
36+
margin: 2rem 0;
37+
display: flex;
38+
font-family: monospace;
39+
font-size: 1rem;
40+
}
41+
#summary > div {
42+
margin-right: 2rem;
43+
background: #eee;
44+
padding: 1rem;
45+
min-width: 15rem;
46+
}
47+
#summary > div:last-child {
48+
margin-right: 0;
49+
}
50+
@media only screen and (max-width: 720px) {
51+
#summary {
52+
flex-direction: column;
53+
}
54+
#summary > div {
55+
margin-right: 0;
56+
margin-top: 2rem;
57+
}
58+
#summary > div:first-child {
59+
margin-top: 0;
60+
}
61+
}
62+
63+
.summary-total {
64+
font-weight: bold;
65+
margin-bottom: 0.5rem;
66+
}
67+
.summary-passed {
68+
color: #4f8a10;
69+
border-left: 0.4rem solid #4f8a10;
70+
padding-left: 0.5rem;
71+
}
72+
.summary-failed,
73+
.summary-obsolete-snapshots {
74+
color: #d8000c;
75+
border-left: 0.4rem solid #d8000c;
76+
padding-left: 0.5rem;
77+
}
78+
.summary-pending {
79+
color: #9f6000;
80+
border-left: 0.4rem solid #9f6000;
81+
padding-left: 0.5rem;
82+
}
83+
.summary-empty {
84+
color: #999;
85+
border-left: 0.4rem solid #999;
86+
}
87+
88+
.test-result {
89+
padding: 1rem;
90+
margin-bottom: 0.25rem;
91+
}
92+
.test-result:last-child {
93+
border: 0;
94+
}
95+
.test-result.passed {
96+
background-color: #dff2bf;
97+
color: #4f8a10;
98+
}
99+
.test-result.failed {
100+
background-color: #ffbaba;
101+
color: #d8000c;
102+
}
103+
.test-result.pending {
104+
background-color: #ffdf61;
105+
color: #9f6000;
106+
}
107+
108+
.test-info {
109+
display: flex;
110+
justify-content: space-between;
111+
}
112+
.test-suitename {
113+
width: 20%;
114+
text-align: left;
115+
font-weight: bold;
116+
word-break: break-word;
117+
}
118+
.test-title {
119+
width: 40%;
120+
text-align: left;
121+
font-style: italic;
122+
}
123+
.test-status {
124+
width: 20%;
125+
text-align: right;
126+
}
127+
.test-duration {
128+
width: 10%;
129+
text-align: right;
130+
font-size: 0.75rem;
131+
}
132+
133+
.failureMessages {
134+
padding: 0 1rem;
135+
margin-top: 1rem;
136+
border-top: 1px dashed #d8000c;
137+
}
138+
.failureMessages.suiteFailure {
139+
border-top: none;
140+
}
141+
.failureMsg {
142+
white-space: pre-wrap;
143+
white-space: -moz-pre-wrap;
144+
white-space: -pre-wrap;
145+
white-space: -o-pre-wrap;
146+
word-wrap: break-word;
147+
}
148+
149+
.suite-container {
150+
margin-bottom: 2rem;
151+
}
152+
.suite-container > input[type="checkbox"] {
153+
position: absolute;
154+
left: -100vw;
155+
}
156+
.suite-container label {
157+
display: block;
158+
}
159+
.suite-container .suite-tests {
160+
overflow-y: hidden;
161+
height: 0;
162+
}
163+
.suite-container > input[type="checkbox"]:checked ~ .suite-tests {
164+
height: auto;
165+
overflow: visible;
166+
}
167+
.suite-info {
168+
padding: 1rem;
169+
background-color: #eee;
170+
color: #777;
171+
display: flex;
172+
align-items: center;
173+
margin-bottom: 0.25rem;
174+
}
175+
.suite-info:hover {
176+
background-color: #ddd;
177+
cursor: pointer;
178+
}
179+
.suite-info .suite-path {
180+
word-break: break-all;
181+
flex-grow: 1;
182+
font-family: monospace;
183+
font-size: 1rem;
184+
}
185+
.suite-info .suite-time {
186+
margin-left: 0.5rem;
187+
padding: 0.2rem 0.3rem;
188+
font-size: 0.75rem;
189+
}
190+
.suite-info .suite-time.warn {
191+
background-color: #d8000c;
192+
color: #fff;
193+
}
194+
.suite-info:before {
195+
content: "\2303";
196+
display: inline-block;
197+
margin-right: 0.5rem;
198+
transform: rotate(0deg);
199+
}
200+
.suite-container > input[type="checkbox"]:checked ~ label .suite-info:before {
201+
transform: rotate(180deg);
202+
}
203+
204+
/* CONSOLE LOGS */
205+
.suite-consolelog {
206+
margin-bottom: 0.25rem;
207+
padding: 1rem;
208+
background-color: #efefef;
209+
}
210+
.suite-consolelog-header {
211+
font-weight: bold;
212+
}
213+
.suite-consolelog-item {
214+
padding: 0.5rem;
215+
}
216+
.suite-consolelog-item pre {
217+
margin: 0.5rem 0;
218+
white-space: pre-wrap;
219+
white-space: -moz-pre-wrap;
220+
white-space: -pre-wrap;
221+
white-space: -o-pre-wrap;
222+
word-wrap: break-word;
223+
}
224+
.suite-consolelog-item-origin {
225+
color: #777;
226+
font-weight: bold;
227+
}
228+
.suite-consolelog-item-message {
229+
color: #000;
230+
font-size: 1rem;
231+
padding: 0 0.5rem;
232+
}
233+
234+
/* OBSOLETE SNAPSHOTS */
235+
.suite-obsolete-snapshots {
236+
margin-bottom: 0.25rem;
237+
padding: 1rem;
238+
background-color: #ffbaba;
239+
color: #d8000c;
240+
}
241+
.suite-obsolete-snapshots-header {
242+
font-weight: bold;
243+
}
244+
.suite-obsolete-snapshots-item {
245+
padding: 0.5rem;
246+
}
247+
.suite-obsolete-snapshots-item pre {
248+
margin: 0.5rem 0;
249+
white-space: pre-wrap;
250+
white-space: -moz-pre-wrap;
251+
white-space: -pre-wrap;
252+
white-space: -o-pre-wrap;
253+
word-wrap: break-word;
254+
}
255+
.suite-obsolete-snapshots-item-message {
256+
color: #000;
257+
font-size: 1rem;
258+
padding: 0 0.5rem;
259+
}
260+
</style></head><body><div class="jesthtml-content"><header><h1 id="title">Test Report</h1></header><div id="metadata-container"><div id="timestamp">Started: 2025-06-26 15:55:40</div><div id="summary"><div id="suite-summary"><div class="summary-total">Suites (1)</div><div class="summary-passed ">1 passed</div><div class="summary-failed summary-empty">0 failed</div><div class="summary-pending summary-empty">0 pending</div></div><div id="test-summary"><div class="summary-total">Tests (1)</div><div class="summary-passed ">1 passed</div><div class="summary-failed summary-empty">0 failed</div><div class="summary-pending summary-empty">0 pending</div></div></div></div><div id="suite-1" class="suite-container"><input id="collapsible-0" type="checkbox" class="toggle" checked="checked"/><label for="collapsible-0"><div class="suite-info"><div class="suite-path">/Users/james.thompson/source/nhs-notify-repository-template/lambdas/example-lambda/src/__tests__/index.test.ts</div><div class="suite-time">0.402s</div></div></label><div class="suite-tests"><div class="test-result passed"><div class="test-info"><div class="test-suitename">event-logging Lambda</div><div class="test-title">logs the input event and returns 200</div><div class="test-status">passed</div><div class="test-duration">0.013s</div></div></div></div></div></div></body></html>

β€Žlambdas/example-lambda/package.jsonβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"devDependencies": {
77
"@swc/core": "^1.11.13",
88
"@swc/jest": "^0.2.37",
9-
"@tsconfig/node20": "^20.1.5",
9+
"@tsconfig/node22": "^22.0.2",
1010
"@types/aws-lambda": "^8.10.148",
1111
"@types/jest": "^29.5.14",
1212
"jest": "^29.7.0",
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"extends": "@tsconfig/node22/tsconfig.json",
33
"include": [
4-
"src/**/*"
4+
"src/**/*",
5+
"jest.config.ts"
56
]
67
}

0 commit comments

Comments
Β (0)