UNPKG

design-comuni-plone-theme

Version:
1,379 lines (1,359 loc) 43.7 kB
import React from 'react'; import { render, screen } from '@testing-library/react'; import '@testing-library/jest-dom/extend-expect'; import PuntoDiContattoView from '../PuntoDiContattoView/PuntoDiContattoView'; import configureStore from 'redux-mock-store'; import { Provider } from 'react-intl-redux'; import { MemoryRouter } from 'react-router-dom'; import thunk from 'redux-thunk'; const middlewares = [thunk]; const mockStore = configureStore(middlewares); // Warning: An update to Icon inside a test was not wrapped in act(...). // When testing, code that causes React state updates should be wrapped into act(...): jest.mock('design-comuni-plone-theme/components/ItaliaTheme/Icons/Icon'); jest.mock('@plone/volto/helpers/Loadable/Loadable'); beforeAll( async () => await require('@plone/volto/helpers/Loadable/Loadable').__setLoadables(), ); const mock_mandatory = { '@components': { actions: { '@id': 'http://localhost:3000/amministrazione/punti-di-contatto/is-this-the-real-life/@actions', }, aliases: { '@id': 'http://localhost:3000/amministrazione/punti-di-contatto/is-this-the-real-life/@aliases', }, breadcrumbs: { '@id': 'http://localhost:3000/amministrazione/punti-di-contatto/is-this-the-real-life/@breadcrumbs', }, contextnavigation: { '@id': 'http://localhost:3000/amministrazione/punti-di-contatto/is-this-the-real-life/@contextnavigation', }, navigation: { '@id': 'http://localhost:3000/amministrazione/punti-di-contatto/is-this-the-real-life/@navigation', }, subsite: {}, translations: { '@id': 'http://localhost:3000/amministrazione/punti-di-contatto/is-this-the-real-life/@translations', }, types: { '@id': 'http://localhost:3000/amministrazione/punti-di-contatto/is-this-the-real-life/@types', }, workflow: { '@id': 'http://localhost:3000/amministrazione/punti-di-contatto/is-this-the-real-life/@workflow', }, }, '@id': 'http://localhost:3000/amministrazione/punti-di-contatto/is-this-the-real-life', '@type': 'PuntoDiContatto', UID: '541fa38e47764d10bc257d31c5be0ccd', title: 'Is this the real life', value_punto_contatto: [ { pdc_type: 'email', pdc_value: 'freddymercury@gmail.com', }, ], }; const mock_allfields = { ...mock_mandatory, allow_discussion: false, changeNote: '', contributors: [], created: '2023-01-31T14:33:05+00:00', creators: ['admin'], description: 'Is this just fantasy', design_italia_meta_type: 'Punto di Contatto', effective: null, exclude_from_nav: false, expires: null, id: 'is-this-the-real-life', is_folderish: true, items: [], items_total: 0, language: { title: 'Italiano', token: 'it', }, layout: 'view', lock: { locked: false, stealable: true, }, luoghi_correlati: [ { '@id': 'http://localhost:3000/vivi-il-comune/luoghi/prova', '@type': 'Venue', circoscrizione: null, city: 'Roma', country: '380', description: 'Lorem ipsum', design_italia_meta_type: 'Luogo', email: null, fax: null, geolocation: { latitude: 41.8337833, longitude: 12.4677863, }, has_children: true, id: 'prova', image_field: null, image_scales: null, nome_sede: null, orario_pubblico: { blocks: { '0cba7e98-73ee-41c7-9260-8dbb4af725d4': { '@type': 'text', }, }, blocks_layout: { items: ['0cba7e98-73ee-41c7-9260-8dbb4af725d4'], }, }, pec: null, quartiere: null, review_state: 'private', riferimento_mail_struttura: null, riferimento_pec_struttura: null, riferimento_telefonico_struttura: null, street: 'Via Liszt, 21', telefono: null, tipologia_luogo: [ { title: 'Architettura Militare e fortificata␟Roccaforte', token: 'roccaforte', }, ], title: 'Prova', web: null, zip_code: '00144', }, ], modified: '2023-01-31T14:43:38+00:00', next_item: {}, opengraph_description: null, opengraph_image: null, opengraph_title: null, parent: { '@id': 'http://localhost:3000/amministrazione/punti-di-contatto', '@type': 'Document', description: '', design_italia_meta_type: 'Pagina', has_children: true, id: 'punti-di-contatto', image_field: null, image_scales: null, review_state: 'private', title: 'Punti di Contatto', }, persona: [ { '@id': 'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi', '@type': 'Persona', description: 'Assessore allo sport', design_italia_meta_type: 'Persona pubblica', effective: null, has_children: true, id: 'gabriele-bianchi', image_field: 'foto_persona', image_scales: { foto_persona: [ { 'content-type': 'image/jpeg', download: 'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-5184-a0948b7d7c2e6ec2944ea4915f5d0c4f.jpeg', filename: 'national-cancer-institute.jpeg', height: 3456, scales: { gallery: { download: 'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-250-d009f9ee6746d6ada973aeb0e99437eb.jpeg', height: 166, width: 250, }, great: { download: 'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-1200-db22dc3240b650dc494ea6412e5c4e8c.jpeg', height: 800, width: 1200, }, huge: { download: 'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-1600-1a281d1182b9422a0211cb7cc5e156f2.jpeg', height: 1066, width: 1600, }, icon: { download: 'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-32-92c4797637f83c00ac27cba86b37cff5.jpeg', height: 21, width: 32, }, large: { download: 'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-800-d85755d485e32d0a1deba313de75711b.jpeg', height: 533, width: 800, }, larger: { download: 'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-1000-e88f96e2a0ed91917f9d728caf2d4406.jpeg', height: 666, width: 1000, }, listing: { download: 'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-16-37154ce0fea872870103d5fae1a29f61.jpeg', height: 10, width: 16, }, midi: { download: 'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-300-458fd003c0d1576f66035dbc1e8ab87e.jpeg', height: 200, width: 300, }, mini: { download: 'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-200-830b17e7b02da4853b079bc80c1c4e34.jpeg', height: 133, width: 200, }, preview: { download: 'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-400-f9e5f2efc8120f6e3351536b3f287196.jpeg', height: 266, width: 400, }, teaser: { download: 'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-600-001ddce8166a4c8bb2839212f9fb2430.jpeg', height: 400, width: 600, }, thumb: { download: 'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-128-d97983d9975606ed88ec6d2029e10ea9.jpeg', height: 85, width: 128, }, tile: { download: 'http://localhost:3000/amministrazione/personale-amministrativo/gabriele-bianchi/@@images/foto_persona-64-f7765a9f78ff6e0725ebee3534a782c8.jpeg', height: 42, width: 64, }, }, size: 2026538, width: 5184, }, ], }, incarichi: 'Incarico di Gabriele Bianchi', review_state: 'private', title: 'Gabriele Bianchi', }, ], previous_item: {}, relatedItems: [ { '@id': 'http://localhost:3000/amministrazione/aree-di-competenza', '@type': 'Document', description: '', design_italia_meta_type: 'Pagina', effective: null, has_children: true, id: 'aree-di-competenza', image_field: null, image_scales: null, review_state: 'private', title: 'Aree di competenza', }, ], related_news: [ { '@id': 'http://localhost:3000/notizie/so-you-think-you-can-stop-me-and-spit-in-my-eye', '@type': 'News Item', description: 'So you think you can love me and leave me to die', design_italia_meta_type: 'Notizia', effective: '2023-01-26T12:28:00+00:00', has_children: true, id: 'so-you-think-you-can-stop-me-and-spit-in-my-eye', image_field: 'preview_image', image_scales: { image: [ { 'content-type': 'image/jpeg', download: '@@images/image-6240-71da431c0d9c95248f540d51dfb68fed.jpeg', filename: 'woman-having-online-meeting-work.jpg', height: 4160, scales: { gallery: { download: '@@images/image-250-9689c314e86d6b6dce893d0018087c27.jpeg', height: 166, width: 250, }, great: { download: '@@images/image-1200-87df243c43d1f9f9d84c1f1062f931f3.jpeg', height: 800, width: 1200, }, huge: { download: '@@images/image-1600-9e3807f4782d0e8b5b95214046f6c8f8.jpeg', height: 1066, width: 1600, }, icon: { download: '@@images/image-32-e8b928b39b37725125239faf3ceaf161.jpeg', height: 21, width: 32, }, large: { download: '@@images/image-800-1c55ef8cdb42a08b1e9e5a960b033e72.jpeg', height: 533, width: 800, }, larger: { download: '@@images/image-1000-56b3e34b0b7efbaa41a59ac807a2387b.jpeg', height: 666, width: 1000, }, listing: { download: '@@images/image-16-0bcd9fbfdc057cf8ebc5e231395e5d34.jpeg', height: 10, width: 16, }, midi: { download: '@@images/image-300-22f007ac656483637616ef48a91d1460.jpeg', height: 200, width: 300, }, mini: { download: '@@images/image-200-007fbea0600dc46cbbcf2e856242d34c.jpeg', height: 133, width: 200, }, preview: { download: '@@images/image-400-eaf194f10746432871f09ed3d07ed292.jpeg', height: 266, width: 400, }, teaser: { download: '@@images/image-600-9b9c36cf016b1a29b37e6c0c2e99623c.jpeg', height: 400, width: 600, }, thumb: { download: '@@images/image-128-a5f1102b033775b9b1cef99929ae188d.jpeg', height: 85, width: 128, }, tile: { download: '@@images/image-64-64e7e2600864a53f7217f3b311307416.jpeg', height: 42, width: 64, }, }, size: 1195679, width: 6240, }, ], preview_image: [ { 'content-type': 'image/webp', download: '@@images/preview_image-2000-fe838f52b9eb0ced276d0f393ba4e2de.webp', filename: 'business-teamwork-join-hands-together-business-teamwork-concept_1150-1804.webp', height: 1333, scales: { gallery: { download: '@@images/preview_image-250-995bbcf1f1946de58f84e18d63dae1eb.webp', height: 166, width: 250, }, great: { download: '@@images/preview_image-1200-d37cc717cb905ea8b6122c2bfa79610d.webp', height: 799, width: 1200, }, huge: { download: '@@images/preview_image-1600-9b6626c97db8159392d81c7bd3179f8a.webp', height: 1066, width: 1600, }, icon: { download: '@@images/preview_image-32-1202b3108041f21e426824d31ff8f31e.webp', height: 21, width: 32, }, large: { download: '@@images/preview_image-800-60c57a8c74c21c289ef969d0f792b5ff.jpeg', height: 533, width: 800, }, larger: { download: '@@images/preview_image-1000-fd1d78cac12899a019ba4ca8525bbf31.jpeg', height: 666, width: 1000, }, listing: { download: '@@images/preview_image-16-3ed212ed2808128b22aae7159c0ddd00.jpeg', height: 10, width: 16, }, midi: { download: '@@images/preview_image-300-e669b19856bc23a0b8b364e2accd65a7.webp', height: 199, width: 300, }, mini: { download: '@@images/preview_image-200-b97f3a3dfded69f5b8974c8a4e1847d2.webp', height: 133, width: 200, }, preview: { download: '@@images/preview_image-400-e019b42a66bf2b15825f79071876a762.webp', height: 266, width: 400, }, teaser: { download: '@@images/preview_image-600-4e55af059198a0f440d21500a699070b.jpeg', height: 399, width: 600, }, thumb: { download: '@@images/preview_image-128-60708835dd4069e0f00577a759f35e82.webp', height: 85, width: 128, }, tile: { download: '@@images/preview_image-64-cd986e11711f44e4ac6fe7d036017447.webp', height: 42, width: 64, }, }, size: 202972, width: 2000, }, ], }, review_state: 'private', tipologia_notizia: [ { title: null, token: 'n', }, { title: null, token: 'o', }, { title: null, token: 't', }, { title: null, token: 'i', }, { title: null, token: 'z', }, { title: null, token: 'i', }, { title: null, token: 'a', }, ], title: 'So you think you can stop me and spit in my eye', typology: 'notizia', }, { '@id': 'http://localhost:3000/notizie/sport-nel-verde-le-iniziative-della-prossima-edizione', '@type': 'News Item', description: 'Le informazioni per partecipare all’iniziativa rivolta a tutte le fasce d’età per promuovere l’attività motoria nelle aree verdi della città.', design_italia_meta_type: null, effective: '2022-05-18T16:29:00+00:00', has_children: true, id: 'sport-nel-verde-le-iniziative-della-prossima-edizione', image_field: 'preview_image', image_scales: { image: [ { 'content-type': 'image/jpeg', download: '@@images/image-5184-f5098a6120bf6d77120ade51613b2421.jpeg', filename: 'national-cancer-institute.jpeg', height: 3456, scales: { gallery: { download: '@@images/image-250-49e5f5fa9627f9d116e937bd76654091.jpeg', height: 166, width: 250, }, great: { download: '@@images/image-1200-920af22d3d8bf83ea467faf60f9d1888.jpeg', height: 800, width: 1200, }, huge: { download: '@@images/image-1600-20c3c7b9940aabb51143abaa6e0e50a3.jpeg', height: 1066, width: 1600, }, icon: { download: '@@images/image-32-82fdf55155a2dd6ea29d4467222f2392.jpeg', height: 21, width: 32, }, large: { download: '@@images/image-800-6348765c039dd3268da9c9d829e7ec19.jpeg', height: 533, width: 800, }, larger: { download: '@@images/image-1000-e09f88650a7cbc0da9d4736b6d0d952c.jpeg', height: 666, width: 1000, }, listing: { download: '@@images/image-16-c6380d7d7b8b4afd993b24ac200bc230.jpeg', height: 10, width: 16, }, midi: { download: '@@images/image-300-8d4e411695d01225d8c6be3993ec3c30.jpeg', height: 200, width: 300, }, mini: { download: '@@images/image-200-14acaa28232fb3c8309da5c5f7933e1e.jpeg', height: 133, width: 200, }, preview: { download: '@@images/image-400-6e346e702da96058e48158d271e7043b.jpeg', height: 266, width: 400, }, teaser: { download: '@@images/image-600-3975f8c82120189ece436677f5b3e6a9.jpeg', height: 400, width: 600, }, thumb: { download: '@@images/image-128-f6ce4305a76b4511e1e10c50a1c1b4da.jpeg', height: 85, width: 128, }, tile: { download: '@@images/image-64-19669a6cef991ed40ef389ceb5da32fd.jpeg', height: 42, width: 64, }, }, size: 2026538, width: 5184, }, ], preview_image: [ { 'content-type': 'image/jpeg', download: '@@images/preview_image-5184-3c6c2e4f0b75f9365405305f562fd0da.jpeg', filename: 'national-cancer-institute.jpeg', height: 3456, scales: { gallery: { download: '@@images/preview_image-250-785408520e6d7b9d05af2fedfee78d2a.jpeg', height: 166, width: 250, }, great: { download: '@@images/preview_image-1200-d3de0810040f56632ddb5e9bbb96003b.jpeg', height: 800, width: 1200, }, huge: { download: '@@images/preview_image-1600-8ea0c1ee6cbde7232a7124d084c81a18.jpeg', height: 1066, width: 1600, }, icon: { download: '@@images/preview_image-32-d795572814924a541bee314c2c150084.jpeg', height: 21, width: 32, }, large: { download: '@@images/preview_image-800-8ab6a0ebc1f0a2385fb37c1d9849f9b4.jpeg', height: 533, width: 800, }, larger: { download: '@@images/preview_image-1000-427e67a155fac6e94a7a64a27f00a4dd.jpeg', height: 666, width: 1000, }, listing: { download: '@@images/preview_image-16-12a9a305b32c8dd7ccccccb73dcf187a.jpeg', height: 10, width: 16, }, midi: { download: '@@images/preview_image-300-ca5dac141c26dbfeda9ba058c401f76d.jpeg', height: 200, width: 300, }, mini: { download: '@@images/preview_image-200-3f6749e2cdff7873580b38b38f8fe5cf.jpeg', height: 133, width: 200, }, preview: { download: '@@images/preview_image-400-7973bb70be8915dd5731c5872144c2fc.jpeg', height: 266, width: 400, }, teaser: { download: '@@images/preview_image-600-6f040ff8785b40296d1148a89821f4f7.jpeg', height: 400, width: 600, }, thumb: { download: '@@images/preview_image-128-23aec0db095cf60152ee0eead83433d7.jpeg', height: 85, width: 128, }, tile: { download: '@@images/preview_image-64-da2dbe6b589040648dd782cc4196fb25.jpeg', height: 42, width: 64, }, }, size: 2026538, width: 5184, }, ], }, review_state: 'published', tipologia_notizia: [ { title: null, token: 'N', }, { title: null, token: 'o', }, { title: null, token: 't', }, { title: null, token: 'i', }, { title: null, token: 'z', }, { title: null, token: 'i', }, { title: null, token: 'a', }, ], title: 'Sport nel verde: le iniziative della prossima edizione', typology: 'Notizia', }, { '@id': 'http://localhost:3000/novita/notizie/osservatorio-sul-turismo', '@type': 'News Item', description: 'Donec in consequat nunc. Duis semper fermentum lacus, ac condimentum justo auctor a. Nam erat erat, porta vel pharetra in, ullamcorper vel turpis.', design_italia_meta_type: null, effective: '2019-12-03T11:09:00+00:00', has_children: true, id: 'osservatorio-sul-turismo', image_field: 'preview_image', image_scales: { image: [ { 'content-type': 'image/png', download: '@@images/image-1156-23a6d691013f38eef4da7c9070b860d5.png', filename: 'foto-ospedale.png', height: 940, scales: { gallery: { download: '@@images/image-250-3f30dc5a4b324c2c81c729af40b7946a.png', height: 203, width: 250, }, icon: { download: '@@images/image-32-26f7b27a252798f783b662aa7e1cdb63.png', height: 26, width: 32, }, large: { download: '@@images/image-800-1b51f5a02768c18c02eb317738eee4a2.png', height: 650, width: 800, }, larger: { download: '@@images/image-1000-cd7ea607a71d3ffa94c5b612317bcfc2.png', height: 813, width: 1000, }, listing: { download: '@@images/image-16-45bfce0601794216b233cbf5615d4d1d.png', height: 13, width: 16, }, midi: { download: '@@images/image-300-3800583f32decd4246ffa329d0d934b6.png', height: 243, width: 300, }, mini: { download: '@@images/image-200-4592c49fa47d209224518c591edcd956.png', height: 162, width: 200, }, preview: { download: '@@images/image-400-948d0d5f2676802a905c31469aa0744d.png', height: 325, width: 400, }, teaser: { download: '@@images/image-600-8fe093861a4edcbf0ff7b79220b5e838.png', height: 487, width: 600, }, thumb: { download: '@@images/image-128-41b926e6735616e649d55d747c9c36a2.png', height: 104, width: 128, }, tile: { download: '@@images/image-64-aae52bf50eb77e0e934256a6974037a0.png', height: 52, width: 64, }, }, size: 1296882, width: 1156, }, ], preview_image: [ { 'content-type': 'image/png', download: '@@images/preview_image-1156-ec9dea8625d8a5dfeb472feeeaf2b569.png', filename: 'foto-ospedale.png', height: 940, scales: { gallery: { download: '@@images/preview_image-250-4b13c28cf0aca436a602cd984d040a69.png', height: 203, width: 250, }, icon: { download: '@@images/preview_image-32-cccba83547d44ee65113371774a6e9b2.png', height: 26, width: 32, }, large: { download: '@@images/preview_image-800-1c9b8e39510a6ef2bbe0806cc7c1818d.png', height: 650, width: 800, }, larger: { download: '@@images/preview_image-1000-be8bb924f3892cd2319c2e8a4503e850.png', height: 813, width: 1000, }, listing: { download: '@@images/preview_image-16-d93ca5f96a5a3c8a554475e267ea332e.png', height: 13, width: 16, }, midi: { download: '@@images/preview_image-300-b3daa8b10d5c2edf34e0378e811fc002.png', height: 243, width: 300, }, mini: { download: '@@images/preview_image-200-1e874d5503c99c483643f1ef72e02dac.png', height: 162, width: 200, }, preview: { download: '@@images/preview_image-400-27fb29056f75dbdab8252011dc243cd1.png', height: 325, width: 400, }, teaser: { download: '@@images/preview_image-600-967d14e77d8e5293d36c32ed24d2f908.png', height: 487, width: 600, }, thumb: { download: '@@images/preview_image-128-bcfbd8ee03a1e56a79ce1e557baec9ac.png', height: 104, width: 128, }, tile: { download: '@@images/preview_image-64-519a94460297b1ab1f06411fcec19842.png', height: 52, width: 64, }, }, size: 1296882, width: 1156, }, ], }, review_state: 'private', tipologia_notizia: [ { title: null, token: 'N', }, { title: null, token: 'o', }, { title: null, token: 't', }, { title: null, token: 'i', }, { title: null, token: 'z', }, { title: null, token: 'i', }, { title: null, token: 'a', }, ], title: 'Osservatorio sul turismo', typology: 'Notizia', }, ], review_state: 'private', rights: '', seo_canonical_url: null, seo_description: null, seo_noindex: null, seo_title: null, strutture_correlate: [ { '@id': 'http://localhost:3000/amministrazione/uffici/gestione-impianti-sportivi', '@type': 'UnitaOrganizzativa', address: '', circoscrizione: '', city: '', contact_info: [ { '@id': 'http://localhost:3000/amministrazione/punti-di-contatto/is-this-the-real-life', '@type': 'PuntoDiContatto', description: 'Is this just fantasy', design_italia_meta_type: 'Punto di Contatto', has_children: false, id: 'is-this-the-real-life', image_field: null, image_scales: null, review_state: 'private', title: 'Is this the real life', value_punto_contatto: [ { pdc_type: 'email', pdc_value: 'freddymercury@gmail.com', }, ], }, ], description: 'Prova prova prova', design_italia_meta_type: 'Unita Organizzativa', geolocation: { latitude: 0, longitude: 0, }, has_children: true, id: 'gestione-impianti-sportivi', image_field: null, image_scales: null, nome_sede: '', quartiere: '', review_state: 'private', street: 'Via Dei Transiti 21', tipologia_organizzazione: { title: 'Struttura amministrativa', token: 'struttura_amministrativa', }, title: 'Gestione impianti sportivi', zip_code: '50302', }, { '@id': 'http://localhost:3000/amministrazione/uffici/giunta-e-consiglio', '@type': 'UnitaOrganizzativa', address: '', circoscrizione: '', city: '', contact_info: [ { '@id': 'http://localhost:3000/amministrazione/punti-di-contatto/is-this-the-real-life', '@type': 'PuntoDiContatto', description: 'Is this just fantasy', design_italia_meta_type: 'Punto di Contatto', has_children: false, id: 'is-this-the-real-life', image_field: null, image_scales: null, review_state: 'private', title: 'Is this the real life', value_punto_contatto: [ { pdc_type: 'email', pdc_value: 'freddymercury@gmail.com', }, ], }, ], description: 'Pierced through the heart but never killed', design_italia_meta_type: 'Unita Organizzativa', geolocation: { latitude: 0, longitude: 0, }, has_children: true, id: 'giunta-e-consiglio', image_field: null, image_scales: null, nome_sede: '', quartiere: '', review_state: 'private', street: '', tipologia_organizzazione: { title: 'Struttura amministrativa', token: 'struttura_amministrativa', }, title: 'Giunta e consiglio', zip_code: '', }, { '@id': 'http://localhost:3000/amministrazione/enti-e-fondazioni/im-just-a-poor-boy', '@type': 'UnitaOrganizzativa', address: '', circoscrizione: 'No, we will not let you go', city: 'will you let me go', contact_info: [ { '@id': 'http://localhost:3000/amministrazione/punti-di-contatto/is-this-the-real-life', '@type': 'PuntoDiContatto', description: 'Is this just fantasy', design_italia_meta_type: 'Punto di Contatto', has_children: false, id: 'is-this-the-real-life', image_field: null, image_scales: null, review_state: 'private', title: 'Is this the real life', value_punto_contatto: [ { pdc_type: 'email', pdc_value: 'freddymercury@gmail.com', }, ], }, ], description: 'Nobody loves me', design_italia_meta_type: 'Unita Organizzativa', geolocation: { latitude: 0, longitude: 0, }, has_children: true, id: 'im-just-a-poor-boy', image_field: null, image_scales: null, nome_sede: 'Spare him his life from this monstrosity', quartiere: 'Bismillah', review_state: 'private', street: 'Easy come', tipologia_organizzazione: { title: 'Struttura amministrativa', token: 'struttura_amministrativa', }, title: "I'm just a poor boy", zip_code: 'Easy go', }, ], subjects: [], value_punto_contatto: [ { pdc_type: 'email', pdc_value: 'freddymercury@gmail.com', }, ], version: 'current', versioning_enabled: true, working_copy: null, working_copy_of: null, }; const store = mockStore({ intl: { locale: 'en', messages: {}, }, content: { subrequests: { 'generic_card_/amministrazione/aree-di-competenza': { loading: false, loaded: true, error: null, data: { '@components': { actions: { '@id': 'http://localhost:3000/amministrazione/aree-di-competenza/@actions', }, aliases: { '@id': 'http://localhost:3000/amministrazione/aree-di-competenza/@aliases', }, breadcrumbs: { '@id': 'http://localhost:3000/amministrazione/aree-di-competenza/@breadcrumbs', }, contextnavigation: { '@id': 'http://localhost:3000/amministrazione/aree-di-competenza/@contextnavigation', }, navigation: { '@id': 'http://localhost:3000/amministrazione/aree-di-competenza/@navigation', }, subsite: {}, translations: { '@id': 'http://localhost:3000/amministrazione/aree-di-competenza/@translations', }, types: { '@id': 'http://localhost:3000/amministrazione/aree-di-competenza/@types', }, workflow: { '@id': 'http://localhost:3000/amministrazione/aree-di-competenza/@workflow', }, }, '@id': 'http://localhost:3000/amministrazione/aree-di-competenza', '@type': 'Document', UID: '4c2bca0d91e0485aa144c6a4ac5f2edf', allow_discussion: false, blocks: { '7a5772b2-4894-406a-883e-60e036c48bca': { '@type': 'text', }, 'aa14d99c-4f53-4adc-b825-0e47caa5e485': { '@type': 'title', }, }, blocks_layout: { items: [ 'aa14d99c-4f53-4adc-b825-0e47caa5e485', '7a5772b2-4894-406a-883e-60e036c48bca', ], }, changeNote: '', contributors: [], correlato_in_evidenza: [], created: '2023-01-03T16:24:55+00:00', creators: ['admin'], description: '', design_italia_meta_type: 'Pagina', effective: null, exclude_from_nav: false, expires: null, id: 'aree-di-competenza', image: null, image_caption: null, info_testata: { 'content-type': 'text/html', data: '<p><br></p>', encoding: 'utf8', }, is_folderish: true, items: [ { '@id': 'http://localhost:3000/amministrazione/aree-di-competenza/area-impiantistica-sportiva-e-manifestazioni-sportive', '@type': 'UnitaOrganizzativa', description: 'Dirigente Arch. M. Alessandra Verdi', design_italia_meta_type: 'Unita Organizzativa', has_children: true, id: 'area-impiantistica-sportiva-e-manifestazioni-sportive', image_field: '', image_scales: null, review_state: 'private', title: 'Area impiantistica sportiva e manifestazioni sportive', url: '/amministrazione/aree-di-competenza/area-impiantistica-sportiva-e-manifestazioni-sportive', }, ], items_total: 1, language: { title: 'Italiano', token: 'it', }, layout: 'document_view', lock: { locked: false, stealable: true, }, modified: '2023-01-03T16:32:16+00:00', mostra_bottoni_condivisione: false, mostra_navigazione: false, next_item: { '@id': 'http://localhost:3000/amministrazione/incarichi', '@type': 'Document', description: '', title: 'Incarichi', }, opengraph_description: null, opengraph_image: null, opengraph_title: null, parent: { '@id': 'http://localhost:3000/amministrazione', '@type': 'Document', description: 'Tutte le informazioni sulla struttura amministrativa del Comune. Scopri gli organi politici, gli uffici e il personale e consulta i documenti pubblici, le statistiche e i bandi di gara.', design_italia_meta_type: 'Pagina', has_children: true, id: 'amministrazione', image_field: null, image_scales: null, review_state: 'published', title: 'Amministrazione', }, preview_caption: null, preview_image: null, previous_item: { '@id': 'http://localhost:3000/amministrazione/luoghi', '@type': 'Document', description: '', title: 'Luoghi', }, relatedItems: [], review_state: 'private', ricerca_in_testata: false, rights: '', seo_canonical_url: null, seo_description: null, seo_noindex: null, seo_title: null, show_modified: true, subjects: [], table_of_contents: null, tassonomia_argomenti: [], title: 'Aree di competenza', version: 'current', versioning_enabled: true, working_copy: null, working_copy_of: null, }, }, }, }, }); test('renders all mandatory fields in the page', async () => { render( <Provider store={store}> <MemoryRouter> <PuntoDiContattoView content={mock_mandatory} /> </MemoryRouter> </Provider>, ); //title expect( screen.getByRole('heading', { name: /Is this the real life/i }), ).toBeInTheDocument(); //value punto di contatto expect( screen.getByRole('heading', { name: /Contatti/i }), ).toBeInTheDocument(); expect( screen.getByRole('link', { name: /freddymercury@gmail.com/i }), ).toBeInTheDocument(); }); test('renders all non-mandatory fields in the page', async () => { render( <Provider store={store}> <MemoryRouter> <PuntoDiContattoView content={mock_allfields} /> </MemoryRouter> </Provider>, ); //descrizione expect(screen.getByText(/Is this just fantasy/i)).toBeInTheDocument(); //persona expect(screen.getByRole('heading', { name: /Persona/i })).toBeInTheDocument(); expect( screen.getByRole('link', { name: /Gabriele Bianchi/i }), ).toBeInTheDocument(); //strutture collegate expect(screen.getByRole('heading', { name: /Persona/i })).toBeInTheDocument(); expect( screen.getByRole('link', { name: /Gabriele Bianchi/i }), ).toBeInTheDocument(); //contenuti correlati expect( screen.getByRole('heading', { name: /Contenuti correlati/i }), ).toBeInTheDocument(); expect( screen.getByRole('link', { name: /Aree di competenza/i }), ).toBeInTheDocument(); }); test('renders relateed fields', async () => { render( <Provider store={store}> <MemoryRouter> <PuntoDiContattoView content={mock_allfields} /> </MemoryRouter> </Provider>, ); // strutture correlate mock_allfields.strutture_correlate?.length > 0 && expect( screen.getByRole('heading', { name: /Strutture correlate/i }), ).toBeInTheDocument(); expect( screen.getByRole('link', { name: /Gestione impianti sportivi/i }), ).toBeInTheDocument(); mock_allfields.servizi_correlati?.length > 0 && expect( screen.getByRole('heading', { name: /Servizi correlati/i }), ).toBeInTheDocument(); mock_allfields.eventi_correlati?.length > 0 && expect( screen.getByRole('heading', { name: /Eventi correlati/i }), ).toBeInTheDocument(); mock_allfields.luoghi_correlati?.length > 0 && expect( screen.getByRole('heading', { name: /Luoghi correlati/i }), ).toBeInTheDocument(); expect(screen.getByRole('link', { name: /Prova/i })).toBeInTheDocument(); mock_allfields.persone_correlate?.length > 0 && expect( screen.getByRole('heading', { name: /Persone correlate/i }), ).toBeInTheDocument(); });