instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
67 lines (59 loc) • 2.12 kB
JSX
import {
get_mission_fields, get_missions_fields, get_fields, get_proposal_ids, get_user_fields,
get_mission_values_by_mission, get_users_filter_fields,
} from 'selectors/fields'
import {array_from_hash} from 'common/utilities'
import state from './state.js'
import expect from 'expect'
describe("get_fields", () => {
it("should return fields", () => {
let fields = get_fields(state)
expect(fields[0]).toExist()
})
})
describe("get_mission_fields", () => {
it("should return fields", () => {
let fields = get_mission_fields(1)(state)
expect(fields[1]).toExist()
expect(fields[7].category).toEqual('non_exclusive')
})
})
describe("get_users_fields", () => {
it("should return fields", () => {
let fields = get_user_fields(1)(state)
expect(fields[7].category).toEqual('exclusive')
})
})
describe("get_missions_fields", () => {
it("should return all missions fields", () => {
const fields = array_from_hash(get_missions_fields(state))
expect(fields.length).toEqual(
array_from_hash(state.fields.fields)
.filter(({for_entity, recycled}) => (for_entity == 'User' && recycled) || for_entity == 'Mission')
.length
)
expect(fields[0].category).toEqual('comment')
expect(fields[1].category).toEqual('non_exclusive')
expect(fields[2].category).toEqual('exclusive')
expect(fields[3].category).toEqual('non_exclusive')
expect(fields[4].category).toEqual('non_exclusive')
})
})
describe("get_proposal_ids", () => {
it("should return proposal ids", () => {
let proposal_ids = get_proposal_ids(state)
expect(proposal_ids.length).toEqual(1)
})
})
describe("get_mission_values_by_mission", () => {
it("should return values by mission", () => {
expect(get_mission_values_by_mission(state)[6]).toInclude(2)
})
})
describe("get_users_filter_fields", () => {
it("should include mission fields", () => {
const users_filter_fields = get_users_filter_fields(state)
const client_field = users_filter_fields.filter(({id}) => id == 5)[0]
expect(client_field.get_item_values({id: 1})).toMatch([3])
})
})