mirror of
https://github.com/inaturalist/iNaturalistReactNative.git
synced 2026-07-31 09:26:57 -04:00
51 lines
1.7 KiB
JavaScript
51 lines
1.7 KiB
JavaScript
import { screen } from "@testing-library/react-native";
|
|
import AddToProjects from "components/AddToProjects/AddToProjects";
|
|
import React from "react";
|
|
import factory from "tests/factory";
|
|
import { renderComponent } from "tests/helpers/render";
|
|
|
|
const mockProjects = [
|
|
factory( "LocalProject" ),
|
|
factory( "LocalProject" ),
|
|
];
|
|
|
|
jest.mock( "providers/contexts", () => {
|
|
const originalModule = jest.requireActual( "providers/contexts" );
|
|
return {
|
|
__esModule: true,
|
|
...originalModule,
|
|
RealmContext: {
|
|
...originalModule.RealmContext,
|
|
useRealm: () => global.realm,
|
|
useQuery: ( ) => mockProjects,
|
|
},
|
|
};
|
|
} );
|
|
|
|
function renderAddToProjects( ) {
|
|
return renderComponent(
|
|
<AddToProjects />,
|
|
);
|
|
}
|
|
describe( "AddToProjects", () => {
|
|
it( "renders section headers and collection/umbrella explainer", ( ) => {
|
|
renderAddToProjects( );
|
|
expect( screen.getByText( "Traditional Projects" ) ).toBeVisible( );
|
|
expect( screen.getByText(
|
|
"You can manually add observations to Traditional Projects you have joined.",
|
|
) ).toBeVisible( );
|
|
expect( screen.getByText( "Collection & Umbrella Projects" ) ).toBeVisible( );
|
|
expect( screen.getByText(
|
|
// eslint-disable-next-line max-len
|
|
"For most other projects, observations that meet project requirements will automatically be included in projects.",
|
|
) ).toBeVisible( );
|
|
} );
|
|
it( "renders joined projects", ( ) => {
|
|
renderAddToProjects( );
|
|
|
|
expect( screen.getByText( mockProjects[0].title ) ).toBeVisible( );
|
|
expect( screen.getByText( mockProjects[1].title ) ).toBeVisible( );
|
|
expect( screen.getAllByText( "Traditional Project" ).length ).toBe( 2 );
|
|
} );
|
|
} );
|