AURORA-1901: Смета РФ — итоги групп и IV кв. на свои места #258

Open
aep wants to merge 1 commits from feat/251-aurora-1901-smeta-rf-column-order into test
2 changed files with 112 additions and 105 deletions

View File

@ -141,6 +141,26 @@ export const config = {
},
},
},
{
header: "Итого: Поддержка",
accessorKey:
"field_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka",
columns: [
{
header: "",
accessorKey: "data.plan.support.year",
columnLetter: "H",
size: 150,
filterFn: "contains",
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
color: "#000000",
},
},
},
],
muiTableHeadCellProps: {
sx: {
@ -233,6 +253,26 @@ export const config = {
},
},
},
{
header: "Итого: Поддержка",
accessorKey:
"field_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka",
columns: [
{
header: "",
accessorKey: "data.approved.support.year",
columnLetter: "N",
size: 150,
filterFn: "contains",
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
color: "#000000",
},
},
},
],
muiTableHeadCellProps: {
sx: {
@ -325,6 +365,26 @@ export const config = {
},
},
},
{
header: "Итого: Поддержка",
accessorKey:
"field_fakticheskie_raskhody_za_2026_god_itogopodderzhka",
columns: [
{
header: "",
accessorKey: "data.fact.support.year",
columnLetter: "T",
size: 150,
filterFn: "contains",
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
color: "#000000",
},
},
},
],
muiTableHeadCellProps: {
sx: {
@ -377,114 +437,10 @@ export const config = {
},
},
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
color: "#000000",
},
},
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
color: "#000000",
},
},
},
{
header: "В тыс. рублей",
accessorKey: "v_tys_rubley",
columns: [
{
header: "Расходы, планируемые РФ на {year} год",
accessorKey: "v_tys_rubley_raskhody_planiruemye_rf_na_2026_god",
columns: [
{
header: "Итого: Поддержка",
accessorKey:
"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka",
columns: [
{
header: "",
accessorKey: "data.plan.support.year",
columnLetter: "H",
size: 150,
filterFn: "contains",
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
color: "#000000",
},
},
},
],
},
{
header: "Утверждённые базовые расходы на {year} год",
accessorKey:
"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god",
columns: [
{
header: "Итого: Поддержка",
accessorKey:
"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka",
columns: [
{
header: "",
accessorKey: "data.approved.support.year",
columnLetter: "N",
size: 150,
filterFn: "contains",
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
color: "#000000",
},
},
},
],
},
{
header: "Фактические расходы за {year} год",
accessorKey: "v_tys_rubley_fakticheskie_raskhody_za_2026_god",
columns: [
{
header: "Итого: Поддержка",
accessorKey:
"v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka",
columns: [
{
header: "",
accessorKey: "data.fact.support.year",
columnLetter: "T",
size: 150,
filterFn: "contains",
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
color: "#000000",
},
},
},
],
},
{
header: "Скорректированная смета расходов на {year} год",
accessorKey:
"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god",
columns: [
{
header: "IV квартал",
accessorKey:
"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal",
"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal",
columns: [
{
header: "",
@ -502,6 +458,12 @@ export const config = {
},
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
color: "#000000",
},
},
},
],
muiTableHeadCellProps: {

View File

@ -0,0 +1,45 @@
import assert from 'node:assert/strict';
import { readFileSync } from 'node:fs';
import test from 'node:test';
import { fileURLToPath } from 'node:url';
// FORM_2/SMETA.js импортирует '../columnColors' без расширения, поэтому node
// не может загрузить модуль напрямую — читаем файл как текст.
const configPath = fileURLToPath(new URL('../constants/FORM_2/SMETA.js', import.meta.url));
const configSource = readFileSync(configPath, 'utf8');
const EXPECTED_LEAF_ORDER = [
'data.section_code',
'data.name',
'data.plan.support.q1',
'data.plan.support.q2',
'data.plan.support.q3',
'data.plan.support.q4',
'data.plan.support.year',
'data.approved.support.q1',
'data.approved.support.q2',
'data.approved.support.q3',
'data.approved.support.q4',
'data.approved.support.year',
'data.fact.support.q1',
'data.fact.support.q2',
'data.fact.support.q3',
'data.fact.support.q4',
'data.fact.support.year',
'data.corrected.support.q2',
'data.corrected.support.q3',
'data.corrected.support.q4',
];
function extractLeafAccessorKeys(source) {
const matches = source.matchAll(/accessorKey:\s*"(data\.[^"]+)"/g);
return [...matches].map((m) => m[1]);
}
test('Смета РФ: итоги групп и IV квартал скорректированной сметы идут в конце своих групп', () => {
assert.deepEqual(extractLeafAccessorKeys(configSource), EXPECTED_LEAF_ORDER);
});
test('Смета РФ: группы "В тыс. рублей" больше нет', () => {
assert.ok(!configSource.includes('В тыс. рублей'), 'заголовок "В тыс. рублей" не должен встречаться в конфиге');
});