diff --git a/assets/js/CreateVacancy.jsx b/assets/js/CreateVacancy.jsx index 193596c7ae386161fe2cda4a8198a6ce5dd911d5..240b68620f119da77a51aa0f84bdee30d76e7404 100755 --- a/assets/js/CreateVacancy.jsx +++ b/assets/js/CreateVacancy.jsx @@ -55,6 +55,8 @@ export default class CreateVacancy extends React.Component { close_time: moment(r.close_time), loading: false, tag: r.tag, + working_period: r.working_period, + max_accepted_applicants: r.max_accepted_applicants, }); }); } @@ -131,7 +133,7 @@ export default class CreateVacancy extends React.Component { </Header> <Form loading={this.state.formLoading} onSubmit={this.handleSubmit}> <Form.Field label="Posisi" name="name" control={Input} onChange={this.handleChange} value={this.state.name} required /> - <label htmlFor="description"> <b> Deskipsi Lowongan </b> </label> + <label htmlFor="description"> <b> Deskripsi Lowongan </b> </label> { !this.state.loading && <CKEditor value={this.state.description} onChange={this.handleDescription} /> } <script>CKEDITOR.replace( 'description' );</script> @@ -141,7 +143,7 @@ export default class CreateVacancy extends React.Component { <CKEditor value={this.state.responsibilities} onChange={this.handleResponsibilities} /> } <script>CKEDITOR.replace( 'responsibilities' );</script> <br /> - <Form.Field label="Jumlah yang Diterima" name="max_accepted_applicants" control={Input} onChange={this.handleChange} value={this.state.max_accepted_applicants} required /> + <Form.Field label="Jumlah yang Diterima" name="max_accepted_applicants" type="number" min="1" control={Input} onChange={this.handleChange} value={this.state.max_accepted_applicants} required /> <label htmlFor="benefits"> <b> Keuntungan </b> </label> { !this.state.loading && <CKEditor value={this.state.benefits} onChange={this.handleBenefits} /> } <script>CKEDITOR.replace( 'benefits' );</script> diff --git a/assets/js/EditProfile.jsx b/assets/js/EditProfile.jsx index a15bd66d69866ab141a0f4622eb87b72684ec892..28fb93b7d59ed402bedc6da38a9abde964185064 100644 --- a/assets/js/EditProfile.jsx +++ b/assets/js/EditProfile.jsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Segment, Image, Header, Icon, Checkbox, Container, Button, Form, Grid, Message } from 'semantic-ui-react'; +import { Segment, Image, Header, Icon, Checkbox, Button, Form } from 'semantic-ui-react'; import Server from './lib/Server'; import Storage from './lib/Storage'; import ModalAlert from './components/ModalAlert'; diff --git a/assets/js/__test__/CreateVacancy-test.jsx b/assets/js/__test__/CreateVacancy-test.jsx index a5e2ddf0ff5aec160844ffc1d5790857e0fcec28..f6e8e2277701d680a9c337663980edcc444943ee 100755 --- a/assets/js/__test__/CreateVacancy-test.jsx +++ b/assets/js/__test__/CreateVacancy-test.jsx @@ -25,6 +25,9 @@ describe('CreateVacancy', () => { description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla aliquet semper neque a fermentum. Duis ac tellus vitae augue iaculis ultrices. Curabitur commodo et neque nec feugiat. Morbi ac diam vel nunc commodo cursus. Phasellus nulla sapien, hendrerit vitae bibendum at, sollicitudin eu ante. Maecenas maximus, ante eu sollicitudin convallis, mauris nunc posuere risus, eu porttitor diam lacus vitae enim. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse at lectus a elit sollicitudin tempor. Nullam condimentum, justo nec tincidunt maximus, neque mi vulputate leo, sit amet lacinia massa ex eget sem. Duis ac erat facilisis, fringilla mauris in, consequat neque. In et neque consequat, vehicula magna at, efficitur ante. Mauris ac lacinia nibh.\r\n\r\nProin sagittis, lectus quis maximus varius, libero justo sollicitudin augue, non lacinia risus orci a enim. Curabitur iaculis enim quis ullamcorper commodo. Vivamus id nisi rhoncus, dignissim tellus quis, interdum est. Fusce sollicitudin eu libero ac feugiat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas semper posuere ex, sed accumsan libero iaculis faucibus. Fusce laoreet ac ligula ut consectetur. Donec tortor mauris, rutrum at sodales et, viverra in dolor. Sed bibendum elit et maximus volutpat. Phasellus justo ipsum, laoreet sit amet faucibus eu, ultricies suscipit mauris. Nullam aliquam libero eu ante ultrices mattis. Donec non justo hendrerit neque volutpat placerat. Ut euismod est nec sem mollis, sit amet porttitor massa rhoncus. Aenean id erat sit amet nunc ultrices scelerisque non in ipsum. Curabitur sollicitudin nulla id mi accumsan venenatis.', verified: true, benefits: 'Makan siang gratis, Waktu kerja fleksibel, Asuransi kesehatan, Liburan berbayar', + working_period: '5 hari', + max_accepted_applicants: 10, + salary: 5000000, logo: 'http://localhost:8001/files/company-logo/8a258a48-3bce-4873-b5d1-538b360d0059.png', address: 'Jl. Kebayoran Baru nomor 13, Jakarta Barat', }, diff --git a/assets/js/__test__/VacancyPage-test.jsx b/assets/js/__test__/VacancyPage-test.jsx index 2ee11363ea3c63671c177fe07a2e37b2c2dc53bc..0bbe878b0ceb4d9ac45a373bb9b68acde2563f8b 100755 --- a/assets/js/__test__/VacancyPage-test.jsx +++ b/assets/js/__test__/VacancyPage-test.jsx @@ -3,7 +3,7 @@ import React from 'react'; import ReactTestUtils from 'react-addons-test-utils'; import fetchMock from 'fetch-mock'; import VacancyPage from '../VacancyPage'; -import { studentUser, companyUser, errorUser } from '../object/Response'; +import { studentUser, companyUser } from '../object/Response'; describe('VacancyPage', () => { fetchMock.get('*', { data: 'value' }); diff --git a/assets/js/__test__/components/AdminVacancy-test.jsx b/assets/js/__test__/components/AdminVacancy-test.jsx index 66580e6de929769956de1dae7a40a30fe2496494..32fe5bc6f83934fe43d1f2b785ea9c58bb4f2e6b 100755 --- a/assets/js/__test__/components/AdminVacancy-test.jsx +++ b/assets/js/__test__/components/AdminVacancy-test.jsx @@ -6,8 +6,7 @@ import Storage from '../../lib/Storage'; import { response, response2 } from '../../object/Response'; describe('AdminVacancy', () => { - const fetchMock = require('fetch-mock'); - + it('renders for verified without problem', () => { const lowongan = ReactTestUtils.renderIntoDocument( <AdminVacancy status={4} data={response} />); diff --git a/assets/js/__test__/components/Vacancy-test.jsx b/assets/js/__test__/components/Vacancy-test.jsx index 15222c198cb06cb531e48a5dee9810d4dce8969f..78e92d30d1861b12c23b594fde0dddc7deb6712b 100755 --- a/assets/js/__test__/components/Vacancy-test.jsx +++ b/assets/js/__test__/components/Vacancy-test.jsx @@ -48,7 +48,8 @@ describe('Vacancy', () => { updated: '2017-03-28T07:34:13.122093Z', working_period: 'Oktober-Desember', verified: true, - max_accepted_applicants: 3, + max_accepted_applicants: 10, + salary: 5000000, total_accepted_applicants: 0, }; diff --git a/core/tests/test_vacancies.py b/core/tests/test_vacancies.py index 5ab2c397131fc96542e08a81d43471794be82114..1a58b142555e38d80a815dc157a29bcbb27a1da1 100755 --- a/core/tests/test_vacancies.py +++ b/core/tests/test_vacancies.py @@ -679,6 +679,42 @@ class ValidationPositionNameinCreateLowonganKP(APITestCase): response_status_code = response.status_code self.assertEqual(response_status_code, 200) + def test_max_accepted_applicants_contains_only_number(self): + self.payload[""] = "11" + + response = self.client.post( + self.url, + self.payload, + format="json" + ) + + response_status_code = response.status_code + self.assertEqual(response_status_code, 200) + + def test_max_accepted_applicants_contains_only_alphabet(self): + self.payload[""] = "abcd" + + response = self.client.post( + self.url, + self.payload, + format="json" + ) + + response_status_code = response.status_code + self.assertEqual(response_status_code, 400) + + def test_max_accepted_applicants_contains_number_and_alphabet(self): + self.payload[""] = "a1r1" + + response = self.client.post( + self.url, + self.payload, + format="json" + ) + + response_status_code = response.status_code + self.assertEqual(response_status_code, 400) + def test_amount_contains_number_and_alphabet(self): self.payload["salary"] = "sadas231"