import mergeSchemas from '../../../src/utils/schema-merge';

describe('listFilesInDirectorySync', () => {
  const mergedSchema = mergeSchemas(getSchemas())
  beforeEach(() => {
  });

  test('"hidden" field should be merge correctly', () => {
    const subject = mergedSchema.attrList.find((el: {name: string}) => el.name === "resInvalidApplicant")
    expect(subject?.hidden).toBe(false);
  });
});

function getSchemas(): unknown[] {
  return [
    {
      "id": "20f4754c-bf1e-4668-a8b8-2ba1f6a2084c",
      "modified": 1621350821,
      "schema": "Form",
      "name": "RejectServiceResult2",
      "groupList": [
        {
          "name": "variantChoice",
          "num": "4",
          "attrList": [
            "resInvalidApplicant"
          ]
        },
        {
          "name": "__default",
          "attrList": [
            "resAbsenceGPZUDoc",
            "resAplicantInconsistency",
            "resAbsenceTechMistake"
          ],
          "view": "cardgroup",
          "label": "Основные данные"
        }
      ],
      "_service_id": "316cd059-b801-4346-8956-fededd7da807",
      "version": "41.3",
      "attrList": [
        {
          "name": "resInvalidApplicant",
          "num": 23,
          "label": "Заявление подано или направлено лицом, не являющимся правообладателем земельного участка, за исключением случая, предусмотренного частью 1.1 статьи 57.3 Градостроительного кодекса Российской Федерации",
          "type": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "view": "boolean",
          "cols": 12,
          "previewHidden": true,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false
        },
        {
          "name": "resAbsenceGPZUDoc",
          "num": 24,
          "label": "Отсутствие утвержденной документации по планировке территории в случае, если в соответствии с Градостроительным кодексом Российской Федерации, иными федеральными законами размещение объекта капитального строительства не допускается при отсутствии такой документации.",
          "type": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "view": "boolean",
          "cols": 12,
          "previewHidden": true,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false
        },
        {
          "name": "resAplicantInconsistency",
          "num": 25,
          "label": "Несоответствие Заявителя кругу лиц, имеющих право на получение услуги",
          "type": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "view": "boolean",
          "cols": 12,
          "previewHidden": false,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": false,
          "editReadOnly": false,
          "createHidden": false,
          "createReadOnly": false,
          "editRequired": true,
          "createRequired": true
        },
        {
          "name": "resAbsenceTechMistake",
          "num": 26,
          "label": "Отсутствие факта допущения технической (-их) ошибки(-ок) при выдаче градостроительного плана земельного участка",
          "type": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "view": "boolean",
          "cols": 12,
          "previewHidden": false,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": false,
          "editReadOnly": false,
          "createHidden": false,
          "createReadOnly": false,
          "editRequired": true,
          "createRequired": true
        }
      ]
    },
    {
      "id": "7a78bf33-e353-41a7-9aa9-36fcb436ba3d",
      "modified": 1621251907,
      "schema": "Form",
      "name": "RejectServiceResult",
      "groupList": [
        {
          "view": "group",
          "name": "__default",
          "num": "0",
          "attrList": [
            "resApplicant",
            "resReqNumber",
            "resReqDate",
            "resSubjName",
            "resRefusalReason",
            "resNumber",
            "resDate",
            "resAuthDepName",
            "resAuthEmplPosition",
            "resDocAcceptRufusal",
            "resServProvisRufusal"
          ]
        },
        {
          "view": "tablegroup",
          "name": "rejects",
          "num": "1",
          "attrList": [
            "resDepNotRespons",
            "resNotCompleteData",
            "resNoReqDoc",
            "resDocExpired",
            "resDocEdite",
            "resDocCorrupted",
            "resInvalidRequest",
            "resInvalidSig",
            "resInvalidApplicant",
            "resAbsenceGPZUDoc",
            "resAplicantInconsistency",
            "resAbsenceTechMistake",
            "resAdInfo"
          ],
          "label": "Основания для отказа",
          "sortByName": true
        },
        {
          "view": "group",
          "name": "_advanced",
          "num": "2",
          "attrList": [
            "resRufuseMotivation",
            "resAdditionalInfo"
          ]
        }
      ],
      "attrList": [
        {
          "name": "resApplicant",
          "label": "Наименование заявителя",
          "num": 1,
          "type": "string",
          "view": "string",
          "cols": 12,
          "editHidden": true,
          "previewHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": true,
          "createRequired": true,
          "hidden": true,
          "readOnly": false,
          "mandatory": true
        },
        {
          "name": "resReqNumber",
          "label": "Номер запроса на предоставление услуги",
          "num": 2,
          "type": "string",
          "view": "string",
          "cols": 12,
          "editHidden": true,
          "previewHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": true,
          "createRequired": true,
          "hidden": true,
          "readOnly": false,
          "mandatory": true
        },
        {
          "name": "resReqDate",
          "label": "Дата запроса на предоставление услуги",
          "num": 3,
          "type": "date",
          "view": "date",
          "props": {
            "format": "DD.MM.YYYY",
            "type": "date"
          },
          "cols": 12,
          "editHidden": true,
          "previewHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": true,
          "createRequired": true,
          "hidden": true,
          "readOnly": false,
          "mandatory": true
        },
        {
          "name": "resSubjName",
          "label": "Наименование субъекта РФ",
          "num": 5,
          "type": "string",
          "view": "text",
          "props": {
            "type": "text"
          },
          "cols": 12,
          "editHidden": true,
          "previewHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": true,
          "createRequired": true,
          "hidden": true,
          "readOnly": false,
          "mandatory": true
        },
        {
          "name": "resRefusalReason",
          "label": "Основание для отказа",
          "num": 6,
          "type": "string",
          "view": "string",
          "props": {
            "type": "text"
          },
          "cols": 12,
          "previewHidden": true,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": true,
          "hidden": true,
          "readOnly": false,
          "mandatory": false
        },
        {
          "name": "resNumber",
          "label": "Номер решения",
          "num": 7,
          "type": "string",
          "view": "string",
          "cols": 12,
          "editHidden": false,
          "editReadOnly": true,
          "createHidden": false,
          "createReadOnly": true,
          "editRequired": true,
          "createRequired": true,
          "hidden": false,
          "readOnly": true,
          "mandatory": true
        },
        {
          "name": "resDate",
          "label": "Дата решения",
          "num": 8,
          "type": "date",
          "view": "date",
          "props": {
            "type": "date",
            "format": "DD.MM.YYYY"
          },
          "cols": 12,
          "editHidden": false,
          "editReadOnly": true,
          "createHidden": false,
          "createReadOnly": true,
          "editRequired": true,
          "createRequired": true,
          "hidden": false,
          "readOnly": true,
          "mandatory": true
        },
        {
          "name": "resAuthDepName",
          "label": "Наименование уполномоченного органа государственной власти",
          "num": 9,
          "type": "string",
          "view": "string",
          "cols": 12,
          "editHidden": true,
          "previewHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": true,
          "createRequired": true,
          "hidden": true,
          "readOnly": false,
          "mandatory": true
        },
        {
          "name": "resAuthEmplPosition",
          "label": "Должность уполномоченного сотрудника",
          "num": 10,
          "type": "string",
          "view": "string",
          "cols": 12,
          "editHidden": true,
          "previewHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": true,
          "createRequired": true,
          "hidden": true,
          "readOnly": false,
          "mandatory": true
        },
        {
          "name": "resDocAcceptRufusal",
          "label": "Отказ в приеме документов, необходимых для предоставления услуги",
          "num": 11,
          "type": "boolean",
          "view": "boolean",
          "props": {
            "type": "bool"
          },
          "cols": 12,
          "editHidden": true,
          "previewHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": true,
          "createRequired": true,
          "hidden": true,
          "readOnly": false,
          "mandatory": true
        },
        {
          "name": "resServProvisRufusal",
          "label": "Отказ в предоставлении услуги",
          "num": 12,
          "type": "boolean",
          "view": "boolean",
          "props": {
            "type": "bool"
          },
          "cols": 12,
          "editHidden": true,
          "previewHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": true,
          "createRequired": true,
          "hidden": true,
          "readOnly": false,
          "mandatory": true
        },
        {
          "name": "resDepNotRespons",
          "label": "Заявление о предоставлении услуги подан в орган государственной власти, орган местного самоуправления, в полномочия которых не входит предоставление услуги",
          "num": 15,
          "type": "boolean",
          "view": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "cols": 12,
          "previewHidden": true,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false,
          "hidden": true,
          "readOnly": false,
          "mandatory": false
        },
        {
          "name": "resNotCompleteData",
          "label": "Неполное заполнение полей в форме заявления, в том числе в интерактивной форме заявления на ЕПГУ, РПГУ",
          "num": 16,
          "type": "boolean",
          "view": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "cols": 12,
          "previewHidden": true,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false,
          "hidden": true,
          "readOnly": false,
          "mandatory": false
        },
        {
          "name": "resNoReqDoc",
          "label": "Непредставление документов, необходимых для предоставления услуги",
          "num": 17,
          "type": "boolean",
          "view": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "cols": 12,
          "previewHidden": true,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false,
          "hidden": true,
          "readOnly": false,
          "mandatory": false
        },
        {
          "name": "resDocExpired",
          "label": "Представленные документы утратили силу на момент обращения за услугой (документ, удостоверяющий личность, документ, удостоверяющий полномочия представителя Заявителя, в случае обращения за предоставлением услуги указанным лицом)",
          "num": 18,
          "type": "boolean",
          "view": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "cols": 12,
          "previewHidden": true,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false,
          "hidden": true,
          "readOnly": false,
          "mandatory": false
        },
        {
          "name": "resDocEdite",
          "label": "Представленные на бумажном носителе документы содержат подчистки и исправления текста, не заверенные в порядке, установленном законодательством Российской Федерации",
          "num": 19,
          "type": "boolean",
          "view": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "cols": 12,
          "previewHidden": true,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false,
          "hidden": true,
          "readOnly": false,
          "mandatory": false
        },
        {
          "name": "resDocCorrupted",
          "label": "Представленные в электронной форме документы содержат повреждения, наличие которых не позволяет в полном объеме использовать информацию и сведения, содержащиеся в документах для предоставления услуги",
          "num": 20,
          "type": "boolean",
          "view": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "cols": 12,
          "previewHidden": true,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false,
          "hidden": true,
          "readOnly": false,
          "mandatory": false
        },
        {
          "name": "resInvalidRequest",
          "label": "Подача запроса о предоставлении услуги и документов, необходимых для предоставления услуги, в электронной форме с нарушением требований",
          "num": 21,
          "type": "boolean",
          "view": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "cols": 12,
          "previewHidden": true,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false,
          "hidden": true,
          "readOnly": false,
          "mandatory": false
        },
        {
          "name": "resInvalidSig",
          "label": "Выявление несоблюдения установленных статьей 11 Федерального закона от 6 апреля 2011 года № 63-ФЗ «Об электронной подписи» условий признания действительности квалифицированной электронной подписи в документах, представленных в электронном виде",
          "num": 22,
          "type": "boolean",
          "view": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "cols": 12,
          "previewHidden": true,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false,
          "hidden": true,
          "readOnly": false,
          "mandatory": false
        },
        {
          "name": "resInvalidApplicant",
          "label": "Заявление подано или направлено лицом, не являющимся правообладателем земельного участка, за исключением случая, предусмотренного частью 1.1 статьи 57.3 Градостроительного кодекса Российской Федерации",
          "num": 23,
          "type": "boolean",
          "view": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "cols": 12,
          "previewHidden": false,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": false,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false,
          "hidden": false,
          "readOnly": false,
          "mandatory": false
        },
        {
          "name": "resAbsenceGPZUDoc",
          "label": "Отсутствие утвержденной документации по планировке территории в случае, если в соответствии с Градостроительным кодексом Российской Федерации, иными федеральными законами размещение объекта капитального строительства не допускается при отсутствии такой документации.",
          "num": 24,
          "type": "boolean",
          "view": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "cols": 12,
          "previewHidden": false,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": false,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false,
          "hidden": false,
          "readOnly": false,
          "mandatory": false
        },
        {
          "name": "resAplicantInconsistency",
          "label": "Несоответствие Заявителя кругу лиц, имеющих право на получение услуги",
          "num": 25,
          "type": "boolean",
          "view": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "cols": 12,
          "previewHidden": true,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false,
          "hidden": true,
          "readOnly": false,
          "mandatory": false
        },
        {
          "name": "resAbsenceTechMistake",
          "label": "Отсутствие факта допущения технической (-их) ошибки(-ок) при выдаче градостроительного плана земельного участка",
          "num": 26,
          "type": "boolean",
          "view": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "cols": 12,
          "previewHidden": true,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false,
          "hidden": true,
          "readOnly": false,
          "mandatory": false
        },
        {
          "name": "resAdInfo",
          "label": "Дополнительная информация, необходимая для устранения причин отказа",
          "num": 27,
          "type": "boolean",
          "view": "boolean",
          "props": {
            "type": "bool",
            "rightLabel": true
          },
          "cols": 12,
          "previewHidden": true,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false,
          "hidden": true,
          "readOnly": false,
          "mandatory": false
        },
        {
          "name": "resRufuseMotivation",
          "label": "Разъяснение причин отказа",
          "num": 13,
          "type": "string",
          "view": "string",
          "cols": 12,
          "previewHidden": true,
          "previewRequired": false,
          "previewReadOnly": true,
          "editHidden": true,
          "editReadOnly": false,
          "createHidden": true,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false,
          "hidden": true,
          "readOnly": false,
          "mandatory": false
        },
        {
          "name": "resAdditionalInfo",
          "label": "Дополнительная информация",
          "num": 14,
          "type": "string",
          "view": "textarea",
          "cols": 12,
          "editHidden": false,
          "previewHidden": false,
          "editReadOnly": false,
          "createHidden": false,
          "createReadOnly": false,
          "editRequired": false,
          "createRequired": false,
          "hidden": false,
          "readOnly": false,
          "mandatory": false
        }
      ]
    }
  ]
}
