1515 * along with this program. If not, see https://www.gnu.org/licenses/.
1616 */
1717
18- import { merge } from 'lodash/fp' ;
18+ import { renderSelectorHook } from '@testing/integration/utils' ;
19+ import { merge } from 'lodash/fp' ;
20+ import { v4 as uuidv4 } from 'uuid' ;
21+
1922import {
2023 initialState as accountInitialState ,
2124 User ,
2225} from 'terraso-client-shared/account/accountSlice' ;
23- import {
24- DEFAULT_ENABLED_SOIL_PIT_METHODS ,
25- DEPTH_INTERVAL_PRESETS ,
26- } from 'terraso-mobile-client/model/soilId/soilDataConstants' ;
2726import {
2827 Project ,
2928 ProjectMembership ,
3029 ProjectPrivacy ,
3130 ProjectRole ,
3231} from 'terraso-client-shared/project/projectTypes' ;
32+ import { Site } from 'terraso-client-shared/site/siteTypes' ;
33+ import { SerializableSet } from 'terraso-client-shared/store/utils' ;
34+
3335import {
34- selectProjectMembershipsWithUsers ,
35- selectProjectsWithTransferrableSites ,
36- selectSitesAndUserRoles ,
37- selectUserRoleSite ,
38- useSiteSoilIntervals ,
39- } from 'terraso-mobile-client/store/selectors' ;
40- import { Site } from 'terraso-client-shared/site/siteTypes' ;
36+ DEFAULT_ENABLED_SOIL_PIT_METHODS ,
37+ DEPTH_INTERVAL_PRESETS ,
38+ } from 'terraso-mobile-client/model/soilId/soilDataConstants' ;
4139import {
4240 DepthInterval ,
4341 methodEnabled ,
@@ -50,11 +48,14 @@ import {
5048 soilPitMethods ,
5149 SoilState ,
5250} from 'terraso-mobile-client/model/soilId/soilIdSlice' ;
53- import { SerializableSet } from 'terraso-client-shared/store/utils' ;
54- import { v4 as uuidv4 } from 'uuid' ;
55- import { createStore } from 'terraso-mobile-client/store' ;
56- import { renderSelectorHook } from '@testing/integration/utils' ;
57-
51+ import { createStore } from 'terraso-mobile-client/store' ;
52+ import {
53+ selectProjectMembershipsWithUsers ,
54+ selectProjectsWithTransferrableSites ,
55+ selectSitesAndUserRoles ,
56+ selectUserRoleSite ,
57+ useSiteSoilIntervals ,
58+ } from 'terraso-mobile-client/store/selectors' ;
5859
5960const generateUser = ( ) => {
6061 const id = uuidv4 ( ) ;
@@ -93,9 +94,8 @@ const generateProject = (
9394 } ;
9495} ;
9596
96- const generateSite = ( args ?: { project : Project } | { owner : User } ) : Site => {
97- let project ,
98- owner ;
97+ const generateSite = ( args ?: { project : Project } | { owner : User } ) : Site => {
98+ let project , owner ;
9999 if ( args && 'project' in args ) {
100100 project = args . project ;
101101 } else if ( args ) {
@@ -122,7 +122,7 @@ const generateSite = (args?: { project: Project } | { owner: User }): Site => {
122122} ;
123123
124124const generateMembership = ( userId : string , userRole : ProjectRole ) => {
125- return { id : uuidv4 ( ) , userId, userRole } ;
125+ return { id : uuidv4 ( ) , userId, userRole} ;
126126} ;
127127
128128const createSoilData = (
@@ -181,7 +181,7 @@ const generateSiteInterval = (
181181 // soilStructureEnabled: false,
182182 soilTextureEnabled : false ,
183183 // carbonatesEnabled: false,
184- ...( label !== undefined ? { label } : { label : '' } ) ,
184+ ...( label !== undefined ? { label} : { label : '' } ) ,
185185 ...DEFAULT_ENABLED_SOIL_PIT_METHODS . reduce (
186186 ( x , method ) => ( {
187187 ...x ,
@@ -223,7 +223,7 @@ const keyBy = <T, Index extends keyof T>(
223223 index : Index ,
224224) => {
225225 return elements . reduce (
226- ( x , y ) => ( { ...x , [ y [ index ] as string | number ] : y } ) ,
226+ ( x , y ) => ( { ...x , [ y [ index ] as string | number ] : y } ) ,
227227 { } ,
228228 ) ;
229229} ;
@@ -241,7 +241,7 @@ function initState(
241241 const soilData = soilId ?. soilData || { } ;
242242 const projectSettings = soilId ?. projectSettings || { } ;
243243 return merge (
244- { account : { ...accountInitialState } } ,
244+ { account : { ...accountInitialState } } ,
245245 {
246246 account : {
247247 users : keyBy ( users , 'id' ) ,
@@ -314,8 +314,8 @@ test('can access all projects with role', () => {
314314 generateMembership ( user . id , 'CONTRIBUTOR' ) ,
315315 ] ) ;
316316 const project3 = generateProject ( [ generateMembership ( user . id , 'MANAGER' ) ] ) ;
317- const site1 = generateSite ( { project : project1 } ) ;
318- const site2 = generateSite ( { project : project2 } ) ;
317+ const site1 = generateSite ( { project : project1 } ) ;
318+ const site2 = generateSite ( { project : project2 } ) ;
319319 const site3 = generateSite ( ) ;
320320
321321 const store = createStore (
@@ -332,8 +332,8 @@ test('can access all projects with role', () => {
332332 ) ;
333333 expect ( pairs ) . toStrictEqual ( {
334334 projects : {
335- [ project1 . id ] : { projectName : project1 . name , projectId : project1 . id } ,
336- [ project3 . id ] : { projectName : project3 . name , projectId : project3 . id } ,
335+ [ project1 . id ] : { projectName : project1 . name , projectId : project1 . id } ,
336+ [ project3 . id ] : { projectName : project3 . name , projectId : project3 . id } ,
337337 } ,
338338 sites : [
339339 {
@@ -343,7 +343,7 @@ test('can access all projects with role', () => {
343343 siteName : site1 . name ,
344344 } ,
345345 ] ,
346- unaffiliatedSites : [ { siteId : site3 . id , siteName : site3 . name } ] ,
346+ unaffiliatedSites : [ { siteId : site3 . id , siteName : site3 . name } ] ,
347347 } ) ;
348348} ) ;
349349
@@ -353,10 +353,10 @@ test('select user sites with project role', () => {
353353 const project2 = generateProject ( [
354354 generateMembership ( user . id , 'CONTRIBUTOR' ) ,
355355 ] ) ;
356- const site1 = generateSite ( { project : project1 } ) ;
357- const site2 = generateSite ( { project : project2 } ) ;
356+ const site1 = generateSite ( { project : project1 } ) ;
357+ const site2 = generateSite ( { project : project2 } ) ;
358358 const site3 = generateSite ( ) ;
359- const site4 = generateSite ( { project : project2 } ) ;
359+ const site4 = generateSite ( { project : project2 } ) ;
360360
361361 const store = createStore (
362362 initState (
@@ -378,27 +378,27 @@ test('select user sites with project role', () => {
378378
379379test ( 'select user role when site owned' , ( ) => {
380380 const user = generateUser ( ) ;
381- const site = generateSite ( { owner : user } ) ;
381+ const site = generateSite ( { owner : user } ) ;
382382 const store = createStore ( initState ( [ ] , [ user ] , [ site ] , user . id ) ) ;
383383
384384 const siteRole = selectUserRoleSite ( store . getState ( ) , site . id ) ;
385- expect ( siteRole ) . toStrictEqual ( { kind : 'site' , role : 'OWNER' } ) ;
385+ expect ( siteRole ) . toStrictEqual ( { kind : 'site' , role : 'OWNER' } ) ;
386386} ) ;
387387
388388test ( 'select user role in project of site' , ( ) => {
389389 const user = generateUser ( ) ;
390390 const project = generateProject ( [ generateMembership ( user . id , 'VIEWER' ) ] ) ;
391- const site = generateSite ( { project } ) ;
391+ const site = generateSite ( { project} ) ;
392392 const store = createStore ( initState ( [ project ] , [ user ] , [ site ] , user . id ) ) ;
393393
394394 const siteRole = selectUserRoleSite ( store . getState ( ) , site . id ) ;
395- expect ( siteRole ) . toStrictEqual ( { kind : 'project' , role : 'VIEWER' } ) ;
395+ expect ( siteRole ) . toStrictEqual ( { kind : 'project' , role : 'VIEWER' } ) ;
396396} ) ;
397397
398398test ( 'select predefined project selector' , ( ) => {
399399 const user = generateUser ( ) ;
400400 const project = generateProject ( [ generateMembership ( user . id , 'MANAGER' ) ] ) ;
401- const site = generateSite ( { project } ) ;
401+ const site = generateSite ( { project} ) ;
402402 const soilData = createSoilData ( site ) ;
403403 const projectSettings = createProjectSettings ( project , {
404404 depthIntervalPreset : 'NRCS' ,
@@ -413,28 +413,28 @@ test('select predefined project selector', () => {
413413 ) ;
414414
415415 expect (
416- aggregatedIntervals . map ( ( { interval : { depthInterval } } ) => depthInterval ) ,
416+ aggregatedIntervals . map ( ( { interval : { depthInterval} } ) => depthInterval ) ,
417417 ) . toStrictEqual (
418- DEPTH_INTERVAL_PRESETS . NRCS . map ( ( { depthInterval } ) => depthInterval ) ,
418+ DEPTH_INTERVAL_PRESETS . NRCS . map ( ( { depthInterval} ) => depthInterval ) ,
419419 ) ;
420420} ) ;
421421
422422test ( 'select predefined project selector with custom preset' , ( ) => {
423423 const user = generateUser ( ) ;
424424 const project = generateProject ( [ generateMembership ( user . id , 'MANAGER' ) ] ) ;
425- const site = generateSite ( { project } ) ;
425+ const site = generateSite ( { project} ) ;
426426 const projectDepthIntervals = [
427- { depthInterval : { start : 2 , end : 3 } , label : 'first' } ,
428- { depthInterval : { start : 5 , end : 6 } , label : '' } ,
427+ { depthInterval : { start : 2 , end : 3 } , label : 'first' } ,
428+ { depthInterval : { start : 5 , end : 6 } , label : '' } ,
429429 ] ;
430430 const projectSettings = createProjectSettings ( project , {
431431 depthIntervalPreset : 'CUSTOM' ,
432432 depthIntervals : projectDepthIntervals ,
433433 } ) ;
434434 const siteDepthIntervals = [
435- generateSiteInterval ( { start : 1 , end : 2 } , 'site-0' ) ,
436- generateSiteInterval ( { start : 4 , end : 6 } , 'site-1' ) ,
437- generateSiteInterval ( { start : 7 , end : 10 } , 'site-2' ) ,
435+ generateSiteInterval ( { start : 1 , end : 2 } , 'site-0' ) ,
436+ generateSiteInterval ( { start : 4 , end : 6 } , 'site-1' ) ,
437+ generateSiteInterval ( { start : 7 , end : 10 } , 'site-2' ) ,
438438 ] ;
439439 const soilData = createSoilData ( site , {
440440 depthIntervals : siteDepthIntervals ,
@@ -477,21 +477,21 @@ test('select predefined project selector with custom preset', () => {
477477test ( 'overlapping site intervals get the project values of the preset interval' , ( ) => {
478478 const user = generateUser ( ) ;
479479 const project = generateProject ( [ generateMembership ( user . id , 'MANAGER' ) ] ) ;
480- const site = generateSite ( { project } ) ;
480+ const site = generateSite ( { project} ) ;
481481
482482 const projectDepthIntervals = [
483- { depthInterval : { start : 1 , end : 2 } , label : 'first' } ,
484- { depthInterval : { start : 2 , end : 3 } , label : 'second' } ,
483+ { depthInterval : { start : 1 , end : 2 } , label : 'first' } ,
484+ { depthInterval : { start : 2 , end : 3 } , label : 'second' } ,
485485 ] ;
486486 const projectSettings = createProjectSettings ( project , {
487487 depthIntervalPreset : 'CUSTOM' ,
488488 depthIntervals : projectDepthIntervals ,
489489 } ) ;
490490 const siteDepthIntervals = [
491- generateSiteInterval ( { start : 1 , end : 2 } , 'label' , {
491+ generateSiteInterval ( { start : 1 , end : 2 } , 'label' , {
492492 // carbonatesEnabled: true,
493493 } ) ,
494- generateSiteInterval ( { start : 2 , end : 3 } , 'label' , {
494+ generateSiteInterval ( { start : 2 , end : 3 } , 'label' , {
495495 // phEnabled: true,
496496 } ) ,
497497 ] ;
@@ -518,7 +518,7 @@ test('overlapping site intervals get the project values of the preset interval',
518518 } ,
519519 {
520520 isFromPreset : true ,
521- interval : { ...siteDepthIntervals [ 1 ] , label : 'second' } ,
521+ interval : { ...siteDepthIntervals [ 1 ] , label : 'second' } ,
522522 } ,
523523 ] ) ;
524524} ) ;
0 commit comments