AURORA-1901: Смета РФ — итоги групп и IV кв. на свои места #258
@ -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: {
|
muiTableHeadCellProps: {
|
||||||
sx: {
|
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: {
|
muiTableHeadCellProps: {
|
||||||
sx: {
|
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: {
|
muiTableHeadCellProps: {
|
||||||
sx: {
|
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 квартал",
|
header: "IV квартал",
|
||||||
accessorKey:
|
accessorKey:
|
||||||
"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal",
|
"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal",
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
header: "",
|
header: "",
|
||||||
@ -502,6 +458,12 @@ export const config = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
muiTableHeadCellProps: {
|
||||||
|
sx: {
|
||||||
|
backgroundColor: "#FFFFFF",
|
||||||
|
color: "#000000",
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
muiTableHeadCellProps: {
|
muiTableHeadCellProps: {
|
||||||
|
|||||||
@ -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('В тыс. рублей'), 'заголовок "В тыс. рублей" не должен встречаться в конфиге');
|
||||||
|
});
|
||||||
Loading…
x
Reference in New Issue
Block a user