refactor: enforce frontend view model boundaries
This commit is contained in:
+29
-24
@@ -6,20 +6,21 @@ import type { BrokerageEvent } from "../../api/useBrokerageEvents";
|
||||
|
||||
import { BrokerageEventsPreview } from "./BrokerageEventsPreview";
|
||||
|
||||
const syntheticEvent = (/* eslint-disable unicorn/no-null -- Fixture preserves the production contract’s explicit null values. */
|
||||
{
|
||||
date: "2026-10-15",
|
||||
dateKind: "event",
|
||||
displayName: "Учебные облигации",
|
||||
figi: null,
|
||||
instrumentUid: null,
|
||||
isin: "RU000A0JX0J2",
|
||||
logoName: null,
|
||||
projectedAmount: { currency: "RUB", value: "850.50" },
|
||||
ticker: "DEMO",
|
||||
type: "coupon",
|
||||
}
|
||||
/* eslint-enable unicorn/no-null */) satisfies BrokerageEvent;
|
||||
/* eslint-disable unicorn/no-null -- Fixture preserves the production contract’s explicit null values. */
|
||||
|
||||
const syntheticEvent
|
||||
= {
|
||||
date: "2026-10-15",
|
||||
dateKind: "event",
|
||||
displayName: "Учебные облигации",
|
||||
figi: null,
|
||||
instrumentUid: null,
|
||||
isin: "RU000A0JX0J2",
|
||||
logoName: null,
|
||||
projectedAmount: { currency: "RUB", value: "850.50" },
|
||||
ticker: "DEMO",
|
||||
type: "coupon",
|
||||
} satisfies /* eslint-enable unicorn/no-null */ BrokerageEvent;
|
||||
|
||||
const eventsPath = "/accounts/storybook-account/events";
|
||||
|
||||
@@ -120,8 +121,10 @@ export const Empty: Story = {
|
||||
},
|
||||
};
|
||||
|
||||
export const MissingAmount: Story = (/* eslint-disable unicorn/no-null -- Fixture preserves the production contract’s explicit null values. */
|
||||
{
|
||||
/* eslint-disable unicorn/no-null -- Fixture preserves the production contract’s explicit null values. */
|
||||
|
||||
export const MissingAmount: Story
|
||||
= {
|
||||
args: {
|
||||
events: {
|
||||
items: [{ ...syntheticEvent, projectedAmount: null }],
|
||||
@@ -134,22 +137,24 @@ export const MissingAmount: Story = (/* eslint-disable unicorn/no-null -- Fixtur
|
||||
docs: {
|
||||
description: {
|
||||
story:
|
||||
"Событие остаётся видимым при неизвестной ожидаемой сумме. Отсутствие оценки не подменяется нулевой выплатой.",
|
||||
"Событие остаётся видимым при неизвестной ожидаемой сумме. Отсутствие оценки не подменяется нулевой выплатой.",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
/* eslint-enable unicorn/no-null */);
|
||||
};
|
||||
/* eslint-enable unicorn/no-null */
|
||||
|
||||
export const LongEvent: Story = (/* eslint-disable unicorn/no-null -- Fixture preserves the production contract’s explicit null values. */
|
||||
{
|
||||
/* eslint-disable unicorn/no-null -- Fixture preserves the production contract’s explicit null values. */
|
||||
|
||||
export const LongEvent: Story
|
||||
= {
|
||||
args: {
|
||||
events: {
|
||||
items: [
|
||||
{
|
||||
...syntheticEvent,
|
||||
displayName:
|
||||
"Учебные облигации компании с очень длинным названием инструмента",
|
||||
"Учебные облигации компании с очень длинным названием инструмента",
|
||||
projectedAmount: null,
|
||||
type: "offer",
|
||||
},
|
||||
@@ -159,5 +164,5 @@ export const LongEvent: Story = (/* eslint-disable unicorn/no-null -- Fixture pr
|
||||
},
|
||||
},
|
||||
name: "Длинное название на узком экране",
|
||||
}
|
||||
/* eslint-enable unicorn/no-null */);
|
||||
};
|
||||
/* eslint-enable unicorn/no-null */
|
||||
|
||||
Reference in New Issue
Block a user