mirror of
https://github.com/inaturalist/iNaturalistReactNative.git
synced 2026-07-31 09:26:57 -04:00
37 lines
1.5 KiB
JavaScript
37 lines
1.5 KiB
JavaScript
import Project from "realmModels/Project";
|
|
import factory from "tests/factory";
|
|
|
|
describe( "Project", ( ) => {
|
|
describe( "mapApiToRealm", ( ) => {
|
|
it( "maps summary fields and POFs", ( ) => {
|
|
const mockRemoteProject = factory( "RemoteProject" );
|
|
const mappedProject = Project.mapApiToRealm( mockRemoteProject );
|
|
|
|
expect( mappedProject.description ).toBe( mockRemoteProject.description );
|
|
expect( mappedProject.icon ).toBe( mockRemoteProject.icon );
|
|
expect( mappedProject.id ).toBe( mockRemoteProject.id );
|
|
expect( mappedProject.title ).toBe( mockRemoteProject.title );
|
|
expect( mappedProject.projectObservationFields ).toHaveLength( 1 );
|
|
expect( mappedProject.project_type ).toBe( mockRemoteProject.project_type );
|
|
} );
|
|
} );
|
|
|
|
describe( "upsertRemoteProjects", ( ) => {
|
|
it( "upserts projects and embedded POF and OF", ( ) => {
|
|
const mockRemoteProject = factory( "RemoteProject" );
|
|
Project.upsertRemoteProjects( [mockRemoteProject], global.realm );
|
|
|
|
const upsertedProject = global.realm.objectForPrimaryKey( "Project", mockRemoteProject.id );
|
|
expect( upsertedProject.title ).toBe( mockRemoteProject.title );
|
|
const { projectObservationFields } = upsertedProject;
|
|
const pof1 = projectObservationFields[0];
|
|
expect( pof1.id ).toBe(
|
|
mockRemoteProject.project_observation_fields[0].id,
|
|
);
|
|
expect( pof1.obsField.id ).toBe(
|
|
mockRemoteProject.project_observation_fields[0].observation_field.id,
|
|
);
|
|
} );
|
|
} );
|
|
} );
|