Skip to content

Commit c08380a

Browse files
committed
Add deep-dive content type, fix lint errors
1 parent 747dfba commit c08380a

42 files changed

Lines changed: 352 additions & 73 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.cache/pages.json

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,75 @@
8888
},
8989
"consent",
9090
"contact",
91+
{
92+
"deepDives": [
93+
"alert-fatigue-reduction-triage-actionable-alerts/pdf",
94+
"api-deprecation-sunset-headers-consumer-migration/pdf",
95+
"api-gateway-metrics-traces-logs-debugging/pdf",
96+
"api-usage-metering-quotas-cost-attribution/pdf",
97+
"argocd-sync-failures-gitops-debugging-troubleshooting/pdf",
98+
"availability-targets-five-nines-cost-benefit-analysis/pdf",
99+
"backpressure-load-shedding-admission-control-overload/pdf",
100+
"blameless-postmortem-incident-analysis-systemic-causes/pdf",
101+
"blue-green-canary-deployment-strategy-comparison/pdf",
102+
"cdn-edge-caching-cache-keys-vary-headers/pdf",
103+
"chaos-engineering-failure-injection-low-cost-experiments/pdf",
104+
"ci-pipeline-caching-docker-layers-dependency-cache/pdf",
105+
"circuit-breaker-retry-budget-cascade-failure-prevention/pdf",
106+
"consumer-driven-contract-testing-pact-internal-apis/pdf",
107+
"container-vulnerability-scanning-ci-shift-left-security/pdf",
108+
"database-schema-migrations-continuous-deployment-zero-downtime/pdf",
109+
"dead-letter-queue-design-replay-debugging/pdf",
110+
"distributed-tracing-sampling-strategies-head-tail/pdf",
111+
"eol-runtime-upgrade-dependency-hell-migration/pdf",
112+
"ephemeral-preview-environments-cost-control-cleanup/pdf",
113+
"flaky-test-diagnosis-race-conditions-e2e-stabilization/pdf",
114+
"golden-paths-developer-experience-standardization-autonomy/pdf",
115+
"grafana-dashboard-hygiene-pruning-actionable-metrics/pdf",
116+
"helm-release-management-drift-detection-debugging/pdf",
117+
"idempotent-message-handlers-deduplication-retries/pdf",
118+
"internal-cli-kubectl-terraform-wrapper-abstraction/pdf",
119+
"internal-developer-portal-platform-self-service-actions/pdf",
120+
"internal-platform-api-versioning-deprecation-breaking-changes/pdf",
121+
"kubernetes-cluster-upgrade-playbook-risk-reduction/pdf",
122+
"kubernetes-cost-optimization-resource-sizing-spot-instances/pdf",
123+
"kubernetes-decision-framework-when-not-to-use/pdf",
124+
"kubernetes-dns-debugging-ndots-coredns-troubleshooting/pdf",
125+
"kubernetes-hpa-autoscaling-metrics-tuning-latency/pdf",
126+
"kubernetes-ingress-gateway-api-comparison-migration/pdf",
127+
"kubernetes-multi-cluster-fleet-management-configuration/pdf",
128+
"kubernetes-pod-resource-requests-limits-qos-classes/pdf",
129+
"kubernetes-secrets-external-secrets-operator-csi-vault/pdf",
130+
"legacy-code-testing-characterization-tests-seams/pdf",
131+
"monorepo-affected-builds-remote-caching-ci-optimization/pdf",
132+
"mtls-certificate-rotation-service-mesh-authentication/pdf",
133+
"nginx-haproxy-reverse-proxy-production-tuning/pdf",
134+
"on-call-rotation-small-teams-sustainable-coverage/pdf",
135+
"opa-conftest-policy-as-code-infrastructure-guardrails/pdf",
136+
"openapi-spec-documentation-sdk-generation-validation/pdf",
137+
"opentelemetry-span-design-granularity-overhead/pdf",
138+
"performance-testing-load-models-benchmark-accuracy/pdf",
139+
"platform-architecture-control-plane-data-plane-separation/pdf",
140+
"platform-engineering-metrics-lead-time-developer-friction/pdf",
141+
"postgresql-connection-pooling-saturation-sizing/pdf",
142+
"private-networking-dns-routing-tls-debugging/pdf",
143+
"prometheus-high-cardinality-metrics-label-design/pdf",
144+
"rate-limiting-token-bucket-leaky-bucket-implementation/pdf",
145+
"release-quality-gates-automated-deployment-validation/pdf",
146+
"reverse-engineering-documentation-legacy-systems/pdf",
147+
"service-catalog-metadata-schema-ownership-tracking/pdf",
148+
"service-decommissioning-scream-test-shutdown/pdf",
149+
"slo-error-budget-practical-guide/pdf",
150+
"slsa-build-provenance-artifact-signing-supply-chain/pdf",
151+
"strangler-fig-migration-complete-guide/pdf",
152+
"structured-logging-correlation-ids-log-schema-design/pdf",
153+
"symptom-based-alerting-runbooks-alert-design/pdf",
154+
"synthetic-test-data-pii-anonymization-fixtures/pdf",
155+
"terraform-module-design-defaults-versioning-interfaces/pdf",
156+
"terraform-state-locking-corruption-recovery-backend/pdf",
157+
"workload-identity-federation-keyless-cloud-authentication/pdf"
158+
]
159+
},
91160
"hero",
92161
"links",
93162
"newsletter",

src/components/CallToAction/Newsletter/layouts/article.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
import GDPRConsent from '@components/Consent/Checkbox/index.astro'
33
import Confetti from '@components/Animations/Confetti/index.astro'
4-
import type { NewsletterProps } from '@components/Newsletter/client/@types'
4+
import type { NewsletterProps } from '@components/CallToAction/Newsletter/client/@types'
55
66
export type Props = Omit<NewsletterProps, 'variant'>
77

src/components/CallToAction/Newsletter/layouts/home.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
import GDPRConsent from '@components/Consent/Checkbox/index.astro'
33
import Confetti from '@components/Animations/Confetti/index.astro'
4-
import type { NewsletterProps } from '@components/Newsletter/client/@types'
4+
import type { NewsletterProps } from '@components/CallToAction/Newsletter/client/@types'
55
66
export type Props = Omit<NewsletterProps, 'variant'>
77

src/components/CallToAction/Newsletter/layouts/page.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
99
import GDPRConsent from '@components/Consent/Checkbox/index.astro'
1010
import Confetti from '@components/Animations/Confetti/index.astro'
11-
import type { NewsletterProps } from '../client/@types'
11+
import type { NewsletterProps } from '@components/CallToAction/Newsletter/client/@types'
1212
1313
export type Props = Omit<NewsletterProps, 'variant'>
1414

src/components/Head/server/__fixtures__/structuredData.fixture.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ export const createStructuredDataParams = (
2323
pageTitle: overrides.pageTitle ?? 'Example Page Title',
2424
}
2525

26-
if (overrides.description !== undefined) {
27-
params.description = overrides.description
26+
if (overrides.pageDescription !== undefined) {
27+
params.pageDescription = overrides.pageDescription
2828
}
2929
if (overrides.contentType !== undefined) {
3030
params.contentType = overrides.contentType

src/components/Pages/Consent/index.astro

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
---
2-
import Header from '@components/Layout/Header/index.astro'
32
import HeadingAnchor from '@components/Layout/HeadingAnchor/index.astro'
43
import Icon from '@components/Icon/index.astro'
54
import List from '@components/List/index.astro'
@@ -92,6 +91,16 @@ const { content } = Astro.props
9291
Adjust your consent settings using the options below.
9392
</p>
9493
<div class="px-6 pt-8 pb-2">
94+
<div class="mb-6">
95+
<h1
96+
id="consent-preferences__title"
97+
class="text-3xl md:text-4xl font-bold text-primary-offset mb-2"
98+
>
99+
{content.header.title}
100+
</h1>
101+
<p class="text-content text-md leading-relaxed">{content.header.description}</p>
102+
</div>
103+
95104
{/* Introduction */}
96105
<div class="bg-page-offset rounded-xl p-6 mb-4">
97106
<p class="leading-relaxed text-md">{content.intro}</p>
Lines changed: 81 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,85 @@
11
---
22
import ContactFormComponent from '../../index.astro'
3+
import type { Props as ContactPageProps } from '../../index.astro'
4+
5+
const content = {
6+
header: {
7+
title: 'Contact',
8+
description: 'Get in touch',
9+
},
10+
contact: {
11+
header: 'Contact Details',
12+
details: [
13+
{
14+
text: 'Email',
15+
value: 'test@example.com',
16+
icon: 'email',
17+
},
18+
],
19+
expertise: {
20+
header: 'Expertise',
21+
areas: [{ text: 'Platform Engineering' }],
22+
},
23+
chooseUs: {
24+
header: 'Why Us',
25+
areas: [{ text: 'Fast response' }],
26+
},
27+
},
28+
form: {
29+
header: 'Send a message',
30+
description: 'Tell us about your project',
31+
formErrorMssg: 'Please fix form errors.',
32+
contact: {
33+
header: 'Your Contact Info',
34+
company: 'Company',
35+
companyPlaceholder: 'Acme Inc',
36+
email: 'Email',
37+
emailPlaceholder: 'you@example.com',
38+
fullName: 'Full Name',
39+
fullNamePlaceholder: 'Jane Doe',
40+
phone: 'Phone',
41+
phonePlaceholder: '+1 555 555 5555',
42+
},
43+
project: {
44+
header: 'Project Details',
45+
budget: 'Budget',
46+
budgetOptions: [
47+
{ text: 'Select budget', value: '' },
48+
{ text: '$5,000 - $10,000', value: '5k-10k' },
49+
],
50+
budgetPlaceholder: 'Budget',
51+
description: 'Description',
52+
descriptionPlaceholder: 'Project details',
53+
timeline: 'Timeline',
54+
timelineOptions: [
55+
{ text: 'Select timeline', value: '' },
56+
{ text: 'Within 1 month', value: 'within-1-month' },
57+
],
58+
timelinePlaceholder: 'Timeline',
59+
type: 'Project Type',
60+
typeOptions: [
61+
{ text: 'Select type', value: '' },
62+
{ text: 'Infrastructure', value: 'infrastructure' },
63+
],
64+
typePlaceholder: 'Project Type',
65+
},
66+
files: {
67+
header: 'Attachments',
68+
subheader: 'Optional uploads',
69+
supportedFormats: 'PDF, DOCX',
70+
maxFileSizeText: 'Max file size:',
71+
maxFileSize: '10MB',
72+
maxFilesText: 'Max files:',
73+
maxFiles: '3',
74+
},
75+
info: [{ lead: 'Note', text: 'We reply quickly.' }],
76+
submitButtonText: 'Send',
77+
waitingText: 'Sending...',
78+
successText: 'Sent successfully.',
79+
errorText: 'Submission failed.',
80+
errorEmail: 'Please provide a valid email.',
81+
},
82+
} satisfies ContactPageProps['content']
383
---
484

5-
<ContactFormComponent />
85+
<ContactFormComponent content={content} />

src/components/Pages/Contact/client/__tests__/error.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
messageWarnLength,
1515
messageMaxLength,
1616
nameMaxLength,
17-
} from '@components/Forms/Contact/client/errorMessages'
17+
} from '@components/Pages/Contact/client/errorMessages'
1818

1919
describe('Error Messages and Validation', () => {
2020
describe('Message Length Validation', () => {

src/components/Pages/Contact/client/__tests__/feedback.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
initLabelHandlers,
66
showErrorBanner,
77
showFieldFeedback,
8-
} from '@components/Forms/Contact/client/feedback'
8+
} from '@components/Pages/Contact/client/feedback'
99
import { renderContactForm } from './testUtils'
1010

1111
describe('ContactForm feedback helpers', () => {

src/components/Pages/Contact/client/__tests__/formSubmission.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'
22
import { TestError } from '@test/errors'
33
import type { RenderContactFormContext } from './testUtils'
4-
import { appendUploadFiles } from '@components/Forms/Contact/client/formSubmission'
4+
import { appendUploadFiles } from '@components/Pages/Contact/client/formSubmission'
55

66
const contactSubmitMock = vi.hoisted(() => vi.fn())
77
const isInputErrorMock = vi.hoisted(() => vi.fn())

0 commit comments

Comments
 (0)