hawatel_search_jobs 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,62 @@
1
+ require 'spec_helper'
2
+
3
+ describe HawatelSearchJobs::Client do
4
+ before(:each) do
5
+ HawatelSearchJobs.configure do |config|
6
+ config.indeed[:activated] = true
7
+ config.indeed[:publisher] = ''
8
+
9
+ config.xing[:activated] = true
10
+ config.xing[:consumer_key] = 'd'
11
+ config.xing[:consumer_secret] = ''
12
+ config.xing[:oauth_token] = ''
13
+ config.xing[:oauth_token_secret] = ''
14
+
15
+ config.reed[:activated] = true
16
+ config.reed[:clientid] = ''
17
+
18
+ config.careerbuilder[:activated]= true
19
+ config.careerbuilder[:clientid] = ''
20
+
21
+ config.careerjet[:activated] =true
22
+ config.careerjet[:api] = 'public.api.careerjet.net'
23
+ end
24
+ end
25
+
26
+ let(:client) { HawatelSearchJobs::Client.new }
27
+
28
+ xit '#search valid data' do
29
+ client.search_jobs({:keywords => 'ruby'})
30
+ valid_jobs_table(client)
31
+ end
32
+
33
+ xit '#search count method' do
34
+ client.search_jobs({:keywords => 'ruby'})
35
+ expect(client.count).to be_kind_of(Integer)
36
+ end
37
+
38
+ xit '#next valid data' do
39
+ client.search_jobs({:keywords => 'ruby'})
40
+
41
+ valid_page_number(0, client)
42
+ valid_jobs_table(client)
43
+ client.next
44
+
45
+ valid_page_number(1, client)
46
+ valid_jobs_table(client)
47
+ end
48
+
49
+ private
50
+ def valid_jobs_table(client)
51
+ expect(client.jobs_table).not_to be_nil
52
+ client.jobs_table.each do |provider, result|
53
+ expect(result.totalResults).to be >= 0
54
+ end
55
+ end
56
+
57
+ def valid_page_number(page, client)
58
+ client.jobs_table.each do |provider, result|
59
+ expect(result.page).to be == page
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,62 @@
1
+ require 'spec_helper'
2
+
3
+ describe "HawatelSearchJobs::Api::Indeed" do
4
+
5
+ before(:each) do
6
+ HawatelSearchJobs.configure do |config|
7
+ config.indeed[:api] = 'api.indeed.com'
8
+ config.indeed[:publisher] = ''
9
+ end
10
+ end
11
+
12
+ let(:client) { return HawatelSearchJobs::Client.new }
13
+ let(:result) {
14
+ return HawatelSearchJobs::Api::Indeed.search(
15
+ :settings => HawatelSearchJobs.indeed,
16
+ :query => { :keywords => 'ruby', :company => '' }
17
+ )}
18
+
19
+ xit "metadata from search() result" do
20
+ expect(result.totalResults).to be_a_kind_of(Integer)
21
+ expect(result.page).to be_a_kind_of(Integer)
22
+ expect(result.last).to be_a_kind_of(Integer)
23
+ expect(result.key).to include("http")
24
+ end
25
+
26
+ xit "job attrubutes from search() result" do
27
+ expect(result.jobs.size).to be > 0
28
+ result.jobs.each do |job|
29
+ expect(job.jobtitle).to be_a_kind_of(String)
30
+ expect(job.location).to be_a_kind_of(String)
31
+ expect(job.company).to be_a_kind_of(String)
32
+ expect(job.url).to include('http')
33
+ end
34
+ end
35
+
36
+ xit "call page() without page param (default 0)" do
37
+ jobs = HawatelSearchJobs::Api::Indeed.page({:query_key => result.key})
38
+ expect(jobs.page).to eq(0)
39
+ end
40
+
41
+ xit "call page() with specified page" do
42
+ jobs = HawatelSearchJobs::Api::Indeed.page({:query_key => result.key, :page => 1})
43
+ expect(jobs.page).to eq(1)
44
+ end
45
+
46
+ xit "call search() with providing location param" do
47
+ result = HawatelSearchJobs::Api::Indeed.search(:settings => HawatelSearchJobs.indeed, :query => {:location => 'US'})
48
+ result.jobs.each do |job|
49
+ expect(job.location).to include("US")
50
+ end
51
+ end
52
+
53
+
54
+ xit "call search() with providing company param" do
55
+ result = HawatelSearchJobs::Api::Indeed.search(:settings => HawatelSearchJobs.indeed, :query => {:company => 'ibm'})
56
+ result.jobs.each do |job|
57
+ expect(job.company).to eq("IBM")
58
+ end
59
+ end
60
+
61
+
62
+ end
data/spec/reed_spec.rb ADDED
@@ -0,0 +1,81 @@
1
+ require 'spec_helper'
2
+ require 'ostruct'
3
+
4
+ describe HawatelSearchJobs::Api::Reed do
5
+ context 'APIs returned jobs' do
6
+ before(:each) do
7
+ HawatelSearchJobs.configure do |config|
8
+ config.reed[:api] = "reed.co.uk/api"
9
+ config.reed[:clientid] = ''
10
+ end
11
+
12
+ @query_api = { :keywords => 'ruby', :location => 'London' }
13
+
14
+ @result = HawatelSearchJobs::Api::Reed.search(
15
+ :settings => HawatelSearchJobs.reed,
16
+ :query => {
17
+ :keywords => @query_api[:keywords],
18
+ :location => @query_api[:location]
19
+ })
20
+ end
21
+
22
+ xit '#search' do
23
+ validate_result(@result, @query_api)
24
+ expect(@result.page).to be >= 0
25
+ expect(@result.last).to be >= 0
26
+ end
27
+
28
+ xit '#page' do
29
+ validate_result(@result, @query_api)
30
+ page_result = HawatelSearchJobs::Api::Reed.page({:settings => HawatelSearchJobs.reed, :query_key => @result.key, :page => 1})
31
+ expect(page_result.key).to match(/&resultsToSkip=25/)
32
+ expect(page_result.page).to eq(1)
33
+ expect(page_result.last).to be >= 0
34
+ end
35
+ end
36
+
37
+ context 'APIs returned empty table' do
38
+ before(:each) do
39
+ HawatelSearchJobs.configure do |config|
40
+ config.reed[:api] = "reed.co.uk/api"
41
+ config.reed[:clientid] = ''
42
+ end
43
+
44
+ @query_api = { :keywords => 'job-not-found-zero-records', :location => 'London' }
45
+
46
+ @result = HawatelSearchJobs::Api::Reed.search(
47
+ :settings => HawatelSearchJobs.reed,
48
+ :query => {
49
+ :keywords => @query_api[:keywords],
50
+ :location => @query_api[:location]
51
+ })
52
+ end
53
+
54
+ xit '#search' do
55
+ validate_result(@result, @query_api)
56
+ expect(@result.totalResults).to eq(0)
57
+ expect(@result.page).to be_nil
58
+ expect(@result.last).to be_nil
59
+ end
60
+
61
+ xit '#page' do
62
+ validate_result(@result, @query_api)
63
+ page_result = HawatelSearchJobs::Api::Reed.page({:settings => HawatelSearchJobs.reed, :query_key => @result.key, :page => 1})
64
+ expect(page_result.key).to match(/&resultsToSkip=25/)
65
+ expect(@result.totalResults).to eq(0)
66
+ expect(@result.page).to be_nil
67
+ expect(@result.last).to be_nil
68
+ end
69
+
70
+ end
71
+
72
+ private
73
+
74
+ def validate_result(result, query_api)
75
+ expect(result.code).to eq(200)
76
+ expect(result.msg).to eq('OK')
77
+ expect(result.totalResults).to be >= 0
78
+ expect(result.key).to match("locationName=#{query_api[:location]}")
79
+ expect(result.key).to match("keywords=#{query_api[:keywords]}")
80
+ end
81
+ end
@@ -0,0 +1,2 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'hawatel_search_jobs'
data/spec/xing_spec.rb ADDED
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+ require 'xing_api'
3
+
4
+ describe "HawatelSearchJobs::Api::Xing" do
5
+
6
+ before(:each) do
7
+ HawatelSearchJobs.configure do |config|
8
+ config.xing[:consumer_key] = ''
9
+ config.xing[:consumer_secret] = ''
10
+ config.xing[:oauth_token] = ''
11
+ config.xing[:oauth_token_secret] = ''
12
+ end
13
+ end
14
+
15
+ let(:client) { return HawatelSearchJobs::Client.new }
16
+ let(:result) {
17
+ return HawatelSearchJobs::Api::Xing.search(
18
+ :settings => HawatelSearchJobs.xing,
19
+ :query => { :keywords => 'ruby', :company => '' }
20
+ )}
21
+
22
+ xit "metadata from search() result" do
23
+ expect(result.page).to be_a_kind_of(Integer)
24
+ expect(result.last).to be_a_kind_of(Integer)
25
+ expect(result.totalResults).to be_a_kind_of(Integer)
26
+ end
27
+
28
+ xit "job attributes from search() result" do
29
+ result.jobs.each do |job|
30
+ expect(job.jobtitle).to be_a_kind_of(String)
31
+ expect(job.location).to be_a_kind_of(String)
32
+ expect(job.company).to be_a_kind_of(String)
33
+ expect(job.url).to include('http')
34
+ end
35
+ end
36
+
37
+ xit "call page() without specified page (default 0)" do
38
+ jobs = HawatelSearchJobs::Api::Xing.page({:query_key => result.key})
39
+ expect(jobs.page).to eq(0)
40
+ end
41
+
42
+ xit "call page() with specified page" do
43
+ jobs = HawatelSearchJobs::Api::Xing.page({:query_key => result.key, :page => 1})
44
+ expect(jobs.page).to eq(1)
45
+ end
46
+
47
+
48
+ end
metadata ADDED
@@ -0,0 +1,158 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hawatel_search_jobs
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Przemyslaw Mantaj
8
+ - Daniel Iwaniuk
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2016-03-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: xing_api
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: activesupport
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: bundler
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.10'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '1.10'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rake
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '10.0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '10.0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: rspec
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ description: |-
85
+ Hawatel_job_search, it is gem which provides ease access to API from popular job websites
86
+ to get current job offers. At this moment, supported backends are indeed.com, careerjet.com,
87
+ xing.com, careerbuilder.com and reed.com.
88
+ email:
89
+ - przemyslaw.mantaj@hawatel.com
90
+ - daniel.iwaniuk@hawatel.com
91
+ executables: []
92
+ extensions: []
93
+ extra_rdoc_files: []
94
+ files:
95
+ - ".codeclimate.yml"
96
+ - ".gitignore"
97
+ - ".rspec"
98
+ - ".rubocop.yml"
99
+ - ".travis.yml"
100
+ - CODE_OF_CONDUCT.md
101
+ - CONTRIBUTING.md
102
+ - Gemfile
103
+ - LICENSE.txt
104
+ - README.md
105
+ - Rakefile
106
+ - hawatel_search_jobs.gemspec
107
+ - lib/hawatel_search_jobs.rb
108
+ - lib/hawatel_search_jobs/api.rb
109
+ - lib/hawatel_search_jobs/api/careerbuilder.rb
110
+ - lib/hawatel_search_jobs/api/careerjet.rb
111
+ - lib/hawatel_search_jobs/api/indeed.rb
112
+ - lib/hawatel_search_jobs/api/reed.rb
113
+ - lib/hawatel_search_jobs/api/xing.rb
114
+ - lib/hawatel_search_jobs/client.rb
115
+ - lib/hawatel_search_jobs/helpers.rb
116
+ - lib/hawatel_search_jobs/helpers/base.rb
117
+ - lib/hawatel_search_jobs/version.rb
118
+ - spec/careerbuilder_spec.rb
119
+ - spec/careerjet_spec.rb
120
+ - spec/client_spec.rb
121
+ - spec/indeed_spec.rb
122
+ - spec/reed_spec.rb
123
+ - spec/spec_helper.rb
124
+ - spec/xing_spec.rb
125
+ homepage: http://github.com/Hawatel/hawatel_search_jobs
126
+ licenses:
127
+ - MIT
128
+ metadata: {}
129
+ post_install_message:
130
+ rdoc_options: []
131
+ require_paths:
132
+ - lib
133
+ required_ruby_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ required_rubygems_version: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ requirements: []
144
+ rubyforge_project:
145
+ rubygems_version: 2.4.8
146
+ signing_key:
147
+ specification_version: 4
148
+ summary: Hawatel_job_search, it is gem which provides ease access to API from popular
149
+ job websites to get current job offers.
150
+ test_files:
151
+ - spec/careerbuilder_spec.rb
152
+ - spec/careerjet_spec.rb
153
+ - spec/client_spec.rb
154
+ - spec/indeed_spec.rb
155
+ - spec/reed_spec.rb
156
+ - spec/spec_helper.rb
157
+ - spec/xing_spec.rb
158
+ has_rdoc: