@@ -22,106 +22,106 @@ const news = JSON.parse(newsRaw) as Paper[];
2222const courses = JSON . parse ( courseRaw ) as Course [ ] ;
2323
2424test ( 'Web names should be unique' , ( ) => {
25- const webNames = new Set ( papers . map ( ( paper ) => paper . web_name ) ) ;
26- expect ( webNames . size ) . toBe ( papers . length ) ;
25+ const webNames = new Set ( papers . map ( ( paper ) => paper . web_name ) ) ;
26+ expect ( webNames . size ) . toBe ( papers . length ) ;
2727} ) ;
2828
2929test ( 'All papers should have corresponding venues' , ( ) => {
30- const venuesSet = new Set ( papers . map ( ( paper ) => paper . venue ) ) ;
31- const venues = featuredVenues . map ( ( venue ) => venue . venue_nickname ) ;
32- const missingVenues = venues . filter ( ( venue ) => ! venuesSet . has ( venue ) ) ;
33- expect ( missingVenues ) . toEqual ( [ ] ) ;
30+ const venuesSet = new Set ( papers . map ( ( paper ) => paper . venue ) ) ;
31+ const venues = featuredVenues . map ( ( venue ) => venue . venue_nickname ) ;
32+ const missingVenues = venues . filter ( ( venue ) => ! venuesSet . has ( venue ) ) ;
33+ expect ( missingVenues ) . toEqual ( [ ] ) ;
3434} ) ;
3535
3636test ( 'All venue nicknames should be unique' , ( ) => {
37- const venueNicknames = new Set ( venues . map ( ( venue ) => venue . nickname ) ) ;
38- expect ( venueNicknames . size ) . toBe ( venues . length ) ;
37+ const venueNicknames = new Set ( venues . map ( ( venue ) => venue . nickname ) ) ;
38+ expect ( venueNicknames . size ) . toBe ( venues . length ) ;
3939} ) ;
4040
4141test ( 'All papers should have corresponding people' , ( ) => {
42- const peopleSet = new Set ( people . map ( ( person ) => `${ person . first_name } ${ person . last_name } ` ) ) ;
43- const paperAuthors = papers
44- . flatMap ( ( paper ) => paper . authors . map ( ( author ) => `${ author . first_name } ${ author . last_name } ` ) )
45- . filter ( ( author ) => ! peopleSet . has ( author ) ) ;
46- expect ( paperAuthors ) . toEqual ( [ ] ) ;
42+ const peopleSet = new Set ( people . map ( ( person ) => `${ person . first_name } ${ person . last_name } ` ) ) ;
43+ const paperAuthors = papers
44+ . flatMap ( ( paper ) => paper . authors . map ( ( author ) => `${ author . first_name } ${ author . last_name } ` ) )
45+ . filter ( ( author ) => ! peopleSet . has ( author ) ) ;
46+ expect ( paperAuthors ) . toEqual ( [ ] ) ;
4747} ) ;
4848
4949test ( 'All papers should have urls for their authors if possible' , ( ) => {
50- const authorUrls = Object . fromEntries (
51- people
52- . filter ( ( person ) => ( person ?. url || '' ) . length )
53- . map ( ( person ) => [ `${ person . first_name } ${ person . last_name } ` , person . url ] )
54- ) ;
55- const updatedPapers = papers . map ( ( paper ) => {
56- const authors = paper . authors . map ( ( author ) => {
57- return {
58- ...author ,
59- url : authorUrls [ `${ author . first_name } ${ author . last_name } ` ]
60- } ;
61- } ) ;
62- return {
63- ...paper ,
64- authors
65- } ;
66- } ) ;
67- expect ( updatedPapers ) . toEqual ( papers ) ;
50+ const authorUrls = Object . fromEntries (
51+ people
52+ . filter ( ( person ) => ( person ?. url || '' ) . length )
53+ . map ( ( person ) => [ `${ person . first_name } ${ person . last_name } ` , person . url ] )
54+ ) ;
55+ const updatedPapers = papers . map ( ( paper ) => {
56+ const authors = paper . authors . map ( ( author ) => {
57+ return {
58+ ...author ,
59+ url : authorUrls [ `${ author . first_name } ${ author . last_name } ` ]
60+ } ;
61+ } ) ;
62+ return {
63+ ...paper ,
64+ authors
65+ } ;
66+ } ) ;
67+ expect ( updatedPapers ) . toEqual ( papers ) ;
6868} ) ;
6969
7070[
71- { key : 'Paper' , dataset : papers , accessor : ( paper : Paper ) : string => paper . web_name } ,
72- {
73- key : 'Person' ,
74- dataset : people ,
75- accessor : ( person : Person ) : string => `${ person . first_name } ${ person . last_name } `
76- } ,
77- {
78- key : 'Spotlight' ,
79- dataset : spotlight ,
80- accessor : ( spotlight : Spotlight ) : string => spotlight . title
81- } ,
82- {
83- key : 'FeaturedVenue' ,
84- dataset : featuredVenues ,
85- accessor : ( venue : FeaturedVenue ) : string => venue . desc
86- } ,
87- {
88- key : 'News' ,
89- dataset : news ,
90- accessor : ( x : News ) : string => x . text
91- } ,
92- {
93- key : 'Venue' ,
94- dataset : venues ,
95- accessor : ( venue : Venue ) : string => venue . nickname
96- } ,
97- {
98- key : 'Course' ,
99- dataset : courses as Course [ ] ,
100- accessor : ( course : Course ) : string => course . name
101- }
71+ { key : 'Paper' , dataset : papers , accessor : ( paper : Paper ) : string => paper . web_name } ,
72+ {
73+ key : 'Person' ,
74+ dataset : people ,
75+ accessor : ( person : Person ) : string => `${ person . first_name } ${ person . last_name } `
76+ } ,
77+ {
78+ key : 'Spotlight' ,
79+ dataset : spotlight ,
80+ accessor : ( spotlight : Spotlight ) : string => spotlight . title
81+ } ,
82+ {
83+ key : 'FeaturedVenue' ,
84+ dataset : featuredVenues ,
85+ accessor : ( venue : FeaturedVenue ) : string => venue . desc
86+ } ,
87+ {
88+ key : 'News' ,
89+ dataset : news ,
90+ accessor : ( x : News ) : string => x . text
91+ } ,
92+ {
93+ key : 'Venue' ,
94+ dataset : venues ,
95+ accessor : ( venue : Venue ) : string => venue . nickname
96+ } ,
97+ {
98+ key : 'Course' ,
99+ dataset : courses as Course [ ] ,
100+ accessor : ( course : Course ) : string => course . name
101+ }
102102] . forEach ( ( { key, dataset, accessor } ) => {
103- test ( `All ${ key } values should be filled out` , ( ) => {
104- const ajv = new Ajv ( { allErrors : true } ) ;
103+ test ( `All ${ key } values should be filled out` , ( ) => {
104+ const ajv = new Ajv ( { allErrors : true } ) ;
105105
106- const config = {
107- path : 'src/lib/app-types.ts' ,
108- tsconfig : 'tsconfig.json' ,
109- type : key ,
110- additionalProperties : false
111- } ;
106+ const config = {
107+ path : 'src/lib/app-types.ts' ,
108+ tsconfig : 'tsconfig.json' ,
109+ type : key ,
110+ additionalProperties : false
111+ } ;
112112
113- const schema = tsj . createGenerator ( config ) . createSchema ( config . type ) ;
113+ const schema = tsj . createGenerator ( config ) . createSchema ( config . type ) ;
114114
115- dataset . forEach ( ( unit ) => {
116- const result = ajv . validate ( schema , unit ) ;
117- if ( ! result ) {
118- console . log ( ajv . errors ) ;
119- }
115+ dataset . forEach ( ( unit ) => {
116+ const result = ajv . validate ( schema , unit ) ;
117+ if ( ! result ) {
118+ console . log ( ajv . errors ) ;
119+ }
120120
121- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
122- // @ts -ignore
123- const unitName = accessor ( unit ) ;
124- expect ( result , `${ key } : "${ unitName } " is invalid` ) . toBe ( true ) ;
125- } ) ;
126- } ) ;
121+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
122+ // @ts -ignore
123+ const unitName = accessor ( unit ) ;
124+ expect ( result , `${ key } : "${ unitName } " is invalid` ) . toBe ( true ) ;
125+ } ) ;
126+ } ) ;
127127} ) ;
0 commit comments