feat: dead-config sweep, test suite foundation, widget settingsSchema validation
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
Sprint G: audited every BootstrapConfig field for a real runtime consumer (docs/DEAD-CONFIG-AUDIT.md). Wired 3 previously-dead editable fields: footer.logoUrl, company.address.street/contacts.phone, catalog.suggestionsEnabled. Remaining dead fields needing a business/design decision tracked in PRODUCT_BACKLOG.md/KNOWN-ISSUES.md, not silently left. Sprint H: 6 new spec files (test count 57 -> 83), covering ProjectEditorFacade (undo/redo, draft persistence, publish gating), AdminAnalyticsFacade (never-fabricate-a-number contract), and regression coverage for this session's carousel/hero/profile-toggle fixes. Sprint I: widget settingsSchema (declared in widget-manifest.json, never validated) now enforced via a new lightweight schema check in ProjectValidator, surfaced through the existing issuesByField pipeline. Same check reused in diagnostics so editor and diagnostics can't disagree. Verification: tsc clean, ng build clean, 83/83 tests pass, barry-cache validate clean (2 pre-existing unrelated warnings only). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,8 @@ interface UiRuntimeState {
|
||||
marketplaceDisplayName: string;
|
||||
logoUrl: string;
|
||||
contactEmail: string;
|
||||
contactPhone: string;
|
||||
companyAddress: string;
|
||||
themeId: string;
|
||||
}
|
||||
|
||||
@@ -17,6 +19,8 @@ export class UiRuntimeFacade {
|
||||
marketplaceDisplayName: '',
|
||||
logoUrl: '',
|
||||
contactEmail: '',
|
||||
contactPhone: '',
|
||||
companyAddress: '',
|
||||
themeId: ''
|
||||
});
|
||||
|
||||
@@ -38,6 +42,8 @@ export class UiRuntimeFacade {
|
||||
marketplaceDisplayName: bootstrap.branding.brandName,
|
||||
logoUrl: bootstrap.branding.logoUrl,
|
||||
contactEmail: bootstrap.branding.supportEmail ?? bootstrap.company?.contacts?.email ?? '',
|
||||
contactPhone: bootstrap.branding.supportPhone ?? bootstrap.company?.contacts?.phone ?? '',
|
||||
companyAddress: bootstrap.company?.address?.street ?? '',
|
||||
themeId: bootstrap.theme.themeId
|
||||
});
|
||||
}
|
||||
@@ -58,6 +64,14 @@ export class UiRuntimeFacade {
|
||||
return this.state().contactEmail;
|
||||
}
|
||||
|
||||
contactPhone(): string {
|
||||
return this.state().contactPhone;
|
||||
}
|
||||
|
||||
companyAddress(): string {
|
||||
return this.state().companyAddress;
|
||||
}
|
||||
|
||||
themeId(): string {
|
||||
return this.state().themeId;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user