UNPKG

design-comuni-plone-theme

Version:
664 lines (652 loc) 22.2 kB
import React from 'react'; import { render, screen } from '@testing-library/react'; import '@testing-library/jest-dom/extend-expect'; import BandiInEvidenceTemplate from '../../Listing/BandiInEvidenceTemplate'; 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); const mock_fields = { '@type': 'listing', block: 'ef16119e-3bab-42dd-9a7a-df4707b85089', headlineTag: 'h2', hide_dates: false, query: [], querystring: { b_size: 3, limit: 3, query: [ { i: 'portal_type', o: 'plone.app.querystring.operation.selection.any', v: ['Bando'], }, ], sort_order: 'ascending', }, linkHref: [ { '@id': '/documenti-e-dati/bandi', Description: '', Title: 'Bandi', title: 'Bandi', }, ], linkTitle: 'Somebody to love', show_block_bg: true, show_description: true, show_detail_link: false, show_ente: true, show_icon: true, show_path_filters: false, show_section: true, show_tipologia: true, show_type: false, variation: 'bandiInEvidenceTemplate', addFilters: 'ƒ addFilters() {}', additionalFilters: [], items_total: 3, loading: false, firstLoading: false, title: 'Can anybody find me', items: [ { '@id': '/servizi/anagrafe-e-stato-civile/avviso-pubblico-manifestazione-di-interesse-per-listituzione-di-uffici-separati-di-stato-civile', '@type': 'Bando', CreationDate: '2023-01-04T16:24:53+00:00', Creator: 'admin', Date: '2023-01-04T16:24:53+00:00', Description: 'Gli Uffici saranno finalizzati alla celebrazione di matrimoni e/o unioni presso strutture e spazi privati di interesse storico, artistico, culturale e/o paesaggistico.', EffectiveDate: 'None', ExpirationDate: 'None', ModificationDate: '2023-01-04T16:24:53+00:00', Subject: [], Subject_bando: [], Title: "Avviso pubblico manifestazione di interesse per l'istituzione di uffici separati di Stato Civile", Type: 'Bando', UID: 'c76ee430345d4ec68531337a38f14398', apertura_bando: '1100-01-01T00:00:00', author_name: null, bando_state: ['open', 'Open'], chiusura_procedimento_bando: null, cmf_uid: 165, commentators: [], created: '2023-01-04T16:24:53+00:00', data_conclusione_incarico: null, description: 'Gli Uffici saranno finalizzati alla celebrazione di matrimoni e/o unioni presso strutture e spazi privati di interesse storico, artistico, culturale e/o paesaggistico.', design_italia_meta_type: 'Bando', destinatari_bando: null, effective: null, end: null, ente_bando: null, event_location: null, exclude_from_nav: false, expires: null, geolocation: null, getIcon: null, getId: 'avviso-pubblico-manifestazione-di-interesse-per-listituzione-di-uffici-separati-di-stato-civile', getObjSize: '0 KB', getPath: '/Plone/servizi/anagrafe-e-stato-civile/avviso-pubblico-manifestazione-di-interesse-per-listituzione-di-uffici-separati-di-stato-civile', getRemoteUrl: null, getURL: 'http://localhost:3000/servizi/anagrafe-e-stato-civile/avviso-pubblico-manifestazione-di-interesse-per-listituzione-di-uffici-separati-di-stato-civile', hasPreviewImage: null, head_title: null, icona: null, id: 'avviso-pubblico-manifestazione-di-interesse-per-listituzione-di-uffici-separati-di-stato-civile', image_field: '', image_scales: null, in_response_to: null, is_folderish: true, last_comment_date: null, latitude: null, listCreators: ['admin'], location: null, longitude: null, mime_type: 'text/plain', modified: '2023-01-04T16:24:53+00:00', nav_title: null, open_end: null, parent: { '@id': 'http://localhost:3000/servizi/anagrafe-e-stato-civile', UID: '752e89303a224f629d1121992da81ebf', title: 'Anagrafe e stato civile', }, portal_type: 'Bando', recurrence: null, review_state: 'private', scadenza_bando: null, start: null, sync_uid: null, tassonomia_argomenti: [], taxonomy_business_events: null, taxonomy_person_life_events: null, taxonomy_temi_dataset: null, taxonomy_tipologia_documenti_albopretorio: null, taxonomy_tipologia_documento: null, taxonomy_tipologia_evento: null, taxonomy_tipologia_frequenza_aggiornamento: null, taxonomy_tipologia_incarico: null, taxonomy_tipologia_licenze: null, taxonomy_tipologia_luogo: null, taxonomy_tipologia_notizia: null, taxonomy_tipologia_organizzazione: null, taxonomy_tipologia_pdc: null, taxonomy_tipologia_stati_pratica: null, tipologia_bando: 'beni_servizi', tipologia_documento: null, tipologia_notizia: null, title: "Avviso pubblico manifestazione di interesse per l'istituzione di uffici separati di Stato Civile", total_comments: 0, ufficio_responsabile_bando: [], update_note: null, whole_day: null, }, { '@id': '/documenti-e-dati/bandi/bando-per-diventare-ironman', '@type': 'Bando', CreationDate: '2023-01-27T15:17:10+00:00', Creator: 'admin', Date: '2023-01-30T11:07:30+00:00', Description: 'Is this the real life?', EffectiveDate: 'None', ExpirationDate: 'None', ModificationDate: '2023-01-30T11:07:30+00:00', Subject: [], Subject_bando: [], Title: 'Bando per diventare Ironman', Type: 'Bando', UID: 'ff82688a5a5f4484a8d2eec481e10c7c', apertura_bando: '2023-01-01T09:00:00', author_name: null, bando_state: ['open', 'Open'], chiusura_procedimento_bando: '2023-03-15T00:00:00', cmf_uid: 222, commentators: [], created: '2023-01-27T15:17:10+00:00', data_conclusione_incarico: null, description: 'Is this the real life?', design_italia_meta_type: 'Bando', destinatari_bando: ['Cittadini'], effective: null, end: null, ente_bando: ['Marvel'], event_location: null, exclude_from_nav: false, expires: null, geolocation: null, getIcon: null, getId: 'bando-per-diventare-ironman', getObjSize: '1.1 MB', getPath: '/Plone/documenti-e-dati/bandi/bando-per-diventare-ironman', getRemoteUrl: null, getURL: 'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman', hasPreviewImage: true, head_title: null, icona: null, id: 'bando-per-diventare-ironman', image: { scales: { gallery: { download: 'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image/gallery', height: 65536, width: 250, }, great: { download: 'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image/great', height: 65536, width: 1200, }, huge: { download: 'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image/huge', height: 65536, width: 1600, }, icon: { download: 'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image/icon', height: 32, width: 32, }, large: { download: 'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image/large', height: 65536, width: 800, }, larger: { download: 'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image/larger', height: 65536, width: 1000, }, listing: { download: 'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image/listing', height: 16, width: 16, }, midi: { download: 'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image/midi', height: 65536, width: 300, }, mini: { download: 'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image/mini', height: 65536, width: 200, }, preview: { download: 'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image/preview', height: 65536, width: 400, }, teaser: { download: 'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image/teaser', height: 65536, width: 600, }, thumb: { download: 'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image/thumb', height: 65536, width: 128, }, tile: { download: 'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-ironman/@@images/preview_image/tile', height: 64, width: 64, }, }, }, image_field: 'preview_image', image_scales: { preview_image: [ { 'content-type': 'image/jpeg', download: '@@images/preview_image-6240-68acba13b3f4e8b2b5f4cb63b4c59422.jpeg', filename: 'woman-having-online-meeting-work.jpg', height: 4160, scales: { gallery: { download: '@@images/preview_image-250-3cd876cd933f72afe503b5425d7ea5c9.jpeg', height: 166, width: 250, }, great: { download: '@@images/preview_image-1200-2e0328470ae659a79fbc5800f26e8ca8.jpeg', height: 800, width: 1200, }, huge: { download: '@@images/preview_image-1600-3c6213a1b0f3c0d0407856987965cc29.jpeg', height: 1066, width: 1600, }, icon: { download: '@@images/preview_image-32-7673a67263cbde0e8a098339e381045c.jpeg', height: 21, width: 32, }, large: { download: '@@images/preview_image-800-1e03346079a614b81b7b96b8f1f64a92.jpeg', height: 533, width: 800, }, larger: { download: '@@images/preview_image-1000-0d36aba5a6622657382c659c2bb936a5.jpeg', height: 666, width: 1000, }, listing: { download: '@@images/preview_image-16-938802f3a10bfd361e1a7507faceea74.jpeg', height: 10, width: 16, }, midi: { download: '@@images/preview_image-300-b02d3106ca12a1ff24aa1f2cf9cb4aaa.jpeg', height: 200, width: 300, }, mini: { download: '@@images/preview_image-200-b1984655c8772ace79f97d1a83e8ae0c.jpeg', height: 133, width: 200, }, preview: { download: '@@images/preview_image-400-75bedb09d75056e52f04da0cf136b2e3.jpeg', height: 266, width: 400, }, teaser: { download: '@@images/preview_image-600-07976c807cf3a44ed8db78839359b8ad.jpeg', height: 400, width: 600, }, thumb: { download: '@@images/preview_image-128-e0ea4c4b18f8e7df0081c95b8c052449.jpeg', height: 85, width: 128, }, tile: { download: '@@images/preview_image-64-61e6216fa24a5fd9fea7c73ef91ead9f.jpeg', height: 42, width: 64, }, }, size: 1195679, width: 6240, }, ], }, in_response_to: null, is_folderish: true, last_comment_date: null, latitude: null, listCreators: ['admin'], location: null, longitude: null, mime_type: 'text/plain', modified: '2023-01-30T11:07:30+00:00', nav_title: null, open_end: null, parent: { '@id': 'http://localhost:3000/documenti-e-dati/bandi', UID: 'ff3e04e8cd844f12b40b80591f932808', title: 'Bandi', }, portal_type: 'Bando', recurrence: null, review_state: 'private', scadenza_bando: '2023-02-28T10:07:03+00:00', start: null, sync_uid: null, tassonomia_argomenti: [ { '@id': 'http://localhost:3000/argomenti/cultura', '@type': 'Pagina Argomento', CreationDate: '2023-01-04T10:08:02+00:00', Creator: 'admin', Date: '2023-01-04T16:05:38+00:00', Description: '', EffectiveDate: 'None', ExpirationDate: 'None', ModificationDate: '2023-01-04T16:05:38+00:00', Subject: [], Subject_bando: null, Title: 'Cultura', Type: 'Argomento', UID: '2bc2225553b94ac28fa19f9186567938', apertura_bando: null, author_name: null, chiusura_procedimento_bando: null, cmf_uid: 94, commentators: null, created: '2023-01-04T10:08:02+00:00', data_conclusione_incarico: null, description: '', design_italia_meta_type: 'Argomento', destinatari_bando: null, effective: null, end: null, ente_bando: null, event_location: null, exclude_from_nav: false, expires: null, geolocation: null, getIcon: '', getId: 'cultura', getObjSize: null, getPath: '/Plone/argomenti/cultura', getRemoteUrl: null, getURL: 'http://localhost:3000/argomenti/cultura', hasPreviewImage: null, head_title: null, icona: null, id: 'cultura', image_field: null, image_scales: null, in_response_to: null, is_folderish: null, last_comment_date: null, latitude: null, listCreators: ['admin'], location: null, longitude: null, mime_type: null, modified: '2023-01-04T16:05:38+00:00', nav_title: null, open_end: null, parent: null, portal_type: 'Pagina Argomento', recurrence: null, review_state: 'private', scadenza_bando: null, start: null, sync_uid: null, tassonomia_argomenti: null, taxonomy_business_events: null, taxonomy_person_life_events: null, taxonomy_temi_dataset: null, taxonomy_tipologia_documenti_albopretorio: null, taxonomy_tipologia_documento: null, taxonomy_tipologia_evento: null, taxonomy_tipologia_frequenza_aggiornamento: null, taxonomy_tipologia_incarico: null, taxonomy_tipologia_licenze: null, taxonomy_tipologia_luogo: null, taxonomy_tipologia_notizia: null, taxonomy_tipologia_organizzazione: null, taxonomy_tipologia_pdc: null, taxonomy_tipologia_stati_pratica: null, tipologia_bando: null, tipologia_documento: null, tipologia_notizia: null, title: 'Cultura', total_comments: null, ufficio_responsabile_bando: null, update_note: null, whole_day: null, }, ], taxonomy_business_events: [], taxonomy_person_life_events: [], taxonomy_temi_dataset: [], taxonomy_tipologia_documenti_albopretorio: [], taxonomy_tipologia_documento: [], taxonomy_tipologia_evento: [], taxonomy_tipologia_frequenza_aggiornamento: [], taxonomy_tipologia_incarico: [], taxonomy_tipologia_licenze: [], taxonomy_tipologia_luogo: [], taxonomy_tipologia_notizia: [], taxonomy_tipologia_organizzazione: [], taxonomy_tipologia_pdc: [], taxonomy_tipologia_stati_pratica: [], tipologia_bando: 'beni_servizi', tipologia_documento: null, tipologia_notizia: null, title: 'Bando per diventare Ironman', total_comments: 0, ufficio_responsabile_bando: ['4b56678a54884616aa8b7cb230d27794'], update_note: 'No escape from reality', whole_day: null, }, { '@id': '/documenti-e-dati/bandi/bando-per-diventare-spiderman', '@type': 'Bando', CreationDate: '2023-02-01T15:17:45+00:00', Creator: 'admin', Date: '2023-02-01T15:17:46+00:00', Description: '', EffectiveDate: 'None', ExpirationDate: 'None', ModificationDate: '2023-02-01T15:17:46+00:00', Subject: [], Subject_bando: [], Title: 'Bando per diventare Spiderman', Type: 'Bando', UID: 'e1f2e05d059b4e4591033ee949bbb16b', apertura_bando: '1100-01-01T00:00:00', author_name: null, bando_state: ['open', 'Open'], chiusura_procedimento_bando: null, cmf_uid: 249, commentators: [], created: '2023-02-01T15:17:45+00:00', data_conclusione_incarico: null, description: '', design_italia_meta_type: 'Bando', destinatari_bando: null, effective: null, end: null, ente_bando: null, event_location: null, exclude_from_nav: false, expires: null, geolocation: null, getIcon: null, getId: 'bando-per-diventare-spiderman', getObjSize: '0 KB', getPath: '/Plone/documenti-e-dati/bandi/bando-per-diventare-spiderman', getRemoteUrl: null, getURL: 'http://localhost:3000/documenti-e-dati/bandi/bando-per-diventare-spiderman', hasPreviewImage: null, head_title: null, icona: null, id: 'bando-per-diventare-spiderman', image_field: '', image_scales: null, in_response_to: null, is_folderish: true, last_comment_date: null, latitude: null, listCreators: ['admin'], location: null, longitude: null, mime_type: 'text/plain', modified: '2023-02-01T15:17:46+00:00', nav_title: null, open_end: null, parent: { '@id': 'http://localhost:3000/documenti-e-dati/bandi', UID: 'ff3e04e8cd844f12b40b80591f932808', title: 'Bandi', }, portal_type: 'Bando', recurrence: null, review_state: 'private', scadenza_bando: null, start: null, sync_uid: null, tassonomia_argomenti: [], taxonomy_business_events: [], taxonomy_person_life_events: [], taxonomy_temi_dataset: [], taxonomy_tipologia_documenti_albopretorio: [], taxonomy_tipologia_documento: [], taxonomy_tipologia_evento: [], taxonomy_tipologia_frequenza_aggiornamento: [], taxonomy_tipologia_incarico: [], taxonomy_tipologia_licenze: [], taxonomy_tipologia_luogo: [], taxonomy_tipologia_notizia: [], taxonomy_tipologia_organizzazione: [], taxonomy_tipologia_pdc: [], taxonomy_tipologia_stati_pratica: [], tipologia_bando: 'beni_servizi', tipologia_documento: null, tipologia_notizia: null, title: 'Bando per diventare Spiderman', total_comments: 0, ufficio_responsabile_bando: [], update_note: null, whole_day: null, }, ], }; const store = mockStore({ intl: { locale: 'en', messages: {}, }, }); test('View renders all fields', async () => { render( <Provider store={store}> <MemoryRouter> <BandiInEvidenceTemplate data={mock_fields} items={mock_fields.items} title={mock_fields.title} show_description={mock_fields.show_description} show_ente={mock_fields.show_ente} show_tipologia={mock_fields.show_tipologia} linkHref={mock_fields.linkHref} linkTitle={mock_fields.linkTitle} /> </MemoryRouter> </Provider>, ); //titolo expect( screen.getByRole('heading', { name: /Can anybody find me/i }), ).toBeInTheDocument(); //mostra descrizione expect( screen.getByText( /Gli uffici saranno finalizzati alla celebrazione di matrimoni/i, ), ).toBeInTheDocument(); //mostra ente expect(screen.getByText(/Ente/i)).toBeInTheDocument(); //sullo schermo viene mostrato "Ente erogatore" ma il test renderizza solo "Ente" // expect(screen.getByText(/Ente erogatore/i)).toBeInTheDocument(); //mostra tipologia //campo obbligatorio su bando ma non viene mostrato se viene selezionato il checkboxk // expect(screen.getByText(/Tipologia/i)).toBeInTheDocument(); //risultati per pagina const card = document.querySelectorAll('.listing-item.card'); expect(card.length).toBe(mock_fields.querystring.b_size); //card bandi expect( screen.getByRole('link', { name: /Bando per diventare Ironman/i }), ).toBeInTheDocument(); //link more expect( screen.getByRole('link', { name: /somebody to love/i }), ).toBeInTheDocument(); });