jinda 0.2.9 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 264d754d95e434a661ea84d40f5ae63d511c453f6958afe01ac14416ef5f6f81
4
- data.tar.gz: 3098a7c6899272c64732071ef9f7a14c701239d50a050655147af2357be7e8f6
3
+ metadata.gz: 567b8dc24404ca3a968b2d10b839c3a963262f0a8ac1d3467e4c7e26d5bef3dd
4
+ data.tar.gz: aabeee85f5f36c04842249aba34e28527523dfa1342be37812c2a8cfe1adff25
5
5
  SHA512:
6
- metadata.gz: e8d576d94a972b908ef23d88a7f615cdf1bdd26a96445c6ff4cebee74c3a00f4ae25521a3d2437eef975b4a4c521aaae96d141052e8a462af3f46a3ec3af0a91
7
- data.tar.gz: 0110ece7db8830e11ff8e9105c1744e7bed7a079db2ee2678db42e300b89ef2748229b80dbd588b21c8db37aa74cc28ed019142d98f12cede7945c6c0f7c7c1e
6
+ metadata.gz: 23f83eec02e541752afc67c5749907621f1987c93f29e442ca89e37154d7bffe6793b15286a7cc0882166ea19e50786e56ae2263587a2d220d2af8bd8f3ccaef
7
+ data.tar.gz: 55dc1154aeb252884d8291d9e3a214a1b330bbfa28b91e500bf64c48351e64f8c4cdb94307f5967efc0fc6514cf53e31da021c2f33c0e7f08084aa0d052cd4f6
data/README.md CHANGED
@@ -36,7 +36,7 @@ app without ActiveRecord
36
36
 
37
37
  ## Add jinda to your Gemfile:
38
38
 
39
- gem 'jinda', '~> 0.2.9'
39
+ gem 'jinda', '~> 0.3.0'
40
40
 
41
41
  For Development (most updated)
42
42
 
@@ -84,6 +84,7 @@ end
84
84
  puts " To config rspect run:"
85
85
  puts "-----------------------------------------\n"
86
86
  puts "rails g jinda:rspec\n"
87
+ puts "run $chromediver for Capybara & Chrome\n"
87
88
  puts "-----------------------------------------\n"
88
89
  puts " To config minitest run:"
89
90
  puts "-----------------------------------------\n"
@@ -93,7 +94,7 @@ end
93
94
  puts "-----------------------------------------\n"
94
95
  puts "Please config. in .env or restore from .env-bak \n"
95
96
  puts "-----------------------------------------\n"
96
- end
97
+ end
97
98
  end
98
99
  end
99
100
  end
@@ -47,6 +47,7 @@ module Jinda
47
47
  gem 'capybara'
48
48
  gem 'selenium-webdriver'
49
49
  gem 'rb-fsevent'
50
+ gem 'valid_attribute'
50
51
  end
51
52
  end
52
53
 
@@ -1,5 +1,7 @@
1
1
  class Jinda::User
2
2
  include Mongoid::Document
3
+ # https://docs.mongodb.com/mongoid/master/tutorials/mongoid-indexes/
4
+ index({ code: 1 }, { unique: true, name: "code_index" })
3
5
  before_create {generate_token(:auth_token)}
4
6
  field :provider, :type => String
5
7
  field :uid, :type => String
@@ -14,6 +16,9 @@ class Jinda::User
14
16
 
15
17
  belongs_to :identity, :polymorphic => true, :optional => true
16
18
  has_many :xmains, :class_name => "Jinda::Xmain"
19
+ validates :code,
20
+ presence: true,
21
+ uniqueness: true
17
22
 
18
23
  ## Add to create forgot password
19
24
  def generate_token(column)
@@ -20,7 +20,7 @@
20
20
 
21
21
  %h2 Installation
22
22
  %ul
23
- %li add gem 'jinda', '0.2.9'
23
+ %li add gem 'jinda', '0.3.0'
24
24
  %li bundle
25
25
  %li rails generate jinda:install
26
26
  %li bundle
@@ -1,22 +1,21 @@
1
- # essions_controller_spec.rb
2
- require 'spec_helper'
3
-
1
+ # sessions_controller_spec.rb
2
+ # 1. Set up the mock
3
+ # 2. Make the request
4
+ # 3. Test whatever code is attached to the callback
5
+ # require 'spec_helper'
6
+ require 'rails_helper'
4
7
  describe SessionsController do
5
8
 
6
9
  describe "Google" do
7
10
 
8
11
  before do
12
+
9
13
  request.env['omniauth.auth'] = OmniAuth.config.mock_auth[:google_oauth2]
14
+ visit '/auth/google_oauth2'
10
15
  end
11
16
 
12
17
  describe "#create" do
13
18
 
14
- it "should successfully create a user" do
15
- expect {
16
- post :create, params: {provider: :google_oauth2}
17
- }.to change{ Jinda::User.count }.by(1)
18
- end
19
-
20
19
  it "should successfully create a session" do
21
20
  session[:user_id].should be_nil
22
21
  post :create, params: {provider: :google_oauth2}
@@ -54,16 +53,11 @@ describe SessionsController do
54
53
 
55
54
  before do
56
55
  request.env['omniauth.auth'] = OmniAuth.config.mock_auth[:facebook]
56
+ visit '/auth/facebook'
57
57
  end
58
58
 
59
59
  describe "#create" do
60
60
 
61
- it "should successfully create a user" do
62
- expect {
63
- post :create, params: {provider: :facebook}
64
- }.to change{ Jinda::User.count }.by(1)
65
- end
66
-
67
61
  it "should successfully create a session" do
68
62
  session[:user_id].should be_nil
69
63
  post :create, params: {provider: :facebook}
@@ -5,7 +5,7 @@ RSpec.feature "Userlogins", type: :feature do
5
5
  visit "/sessions/new"
6
6
 
7
7
  fill_in "User name", :with => "admin"
8
- fill_in "Password", :with => "secret"
8
+ fill_in "Password", :with => "secret1"
9
9
  click_button "Sign In"
10
10
 
11
11
  expect(page).to have_text("My Articles")
@@ -0,0 +1,12 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe "Jinda::User", :type => :model do
4
+ it "prevents duplicates " do
5
+ user1 = create(:user, code: 'abc', email: 'test@email.com')
6
+ user2 = build(:user, code: 'abc', email: 'test@email.com')
7
+
8
+ user1.should be_valid
9
+ #user2.should be_valid
10
+ user2.should_not have_valid(:code)
11
+ end
12
+ end
@@ -2,54 +2,10 @@
2
2
  # spec_helper.rb
3
3
  require 'rubygems'
4
4
  require 'capybara/rspec'
5
- # This file is copied to spec/ when you run 'rails generate rspec:install'
6
- OmniAuth.config.test_mode = true
7
- omniauth_hash = { 'provider' => 'google_oauth2',
8
- 'uid' => '105362273761620533373',
9
- 'info' => {
10
- 'name' => 'Kulsoft',
11
- 'email' => 'kulsoft.net@gmail.com',
12
- 'nickname' => 'kulsoft'
13
- },
14
- 'extra' => {'raw_info' =>
15
- { 'location' => 'San Francisco',
16
- 'gravatar_id' => '123456789'
17
- }
18
- }
19
- }
20
- OmniAuth.config.add_mock(:google_oauth2, omniauth_hash)
5
+ # Set up the mock
6
+ require 'support/omniauth_macros'
7
+ require 'valid_attribute'
21
8
 
22
- omniauth_hash = { 'provider' => 'facebook',
23
- 'uid' => '105362273761620533373',
24
- 'info' => {
25
- 'name' => 'Peter Colling',
26
- 'email' => '1.0@kul.asia',
27
- 'nickname' => 'Peter C'
28
- },
29
- 'extra' => {'raw_info' =>
30
- {'location' => 'LA',
31
- 'gravatar_id' => '13'
32
- }
33
- }
34
- }
35
- OmniAuth.config.add_mock(:facebook, omniauth_hash)
36
-
37
-
38
- ###########################################################################################
39
- # This file was generated by the `rails generate rspec:install` command. Conventionally, all
40
- # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
41
- # The generated `.rspec` file contains `--require spec_helper` which will cause
42
- # this file to always be loaded, without a need to explicitly require it in any
43
- # files.
44
- #
45
- # Given that it is always loaded, you are encouraged to keep this file as
46
- # light-weight as possible. Requiring heavyweight dependencies from this file
47
- # will add to the boot time of your test suite on EVERY test run, even for an
48
- # individual file that may not need all of that loaded. Instead, consider making
49
- # a separate helper file that requires the additional dependencies and performs
50
- # the additional setup, and require it from the spec files that actually need
51
- # it.
52
- #
53
9
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
54
10
  RSpec.configure do |config|
55
11
  # config.include SpecTestHelper, :type => :controller
@@ -63,8 +19,15 @@ RSpec.configure do |config|
63
19
  config.shared_context_metadata_behavior = :apply_to_host_groups
64
20
 
65
21
  # https://github.com/DatabaseCleaner/database_cleaner #
66
-
67
22
  config.use_transactional_fixtures = false
23
+ # https://stackoverflow.com/questions/15148585/undefined-method-visit-when-using-rspec-and-capybara-in-rails
24
+ config.include Capybara::DSL
25
+
26
+ # https://stackoverflow.com/questions/21445164/set-chrome-as-default-browser-for-rspec-capybara/30551595
27
+ Capybara.register_driver :chrome do |app|
28
+ Capybara::Selenium::Driver.new(app, :browser => :chrome)
29
+ end
30
+ Capybara.javascript_driver = :chrome
68
31
 
69
32
  config.before(:suite) do
70
33
  if config.use_transactional_fixtures?
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory "Jinda/User" do
2
+ factory :user, class: Jinda::User do
3
3
  code {"Tester"}
4
4
  email {"tester@test.comm"}
5
5
  end
@@ -1,3 +1,3 @@
1
1
  module Jinda
2
- VERSION = "0.2.9"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jinda
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.9
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Prateep Kul
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2018-10-22 00:00:00.000000000 Z
12
+ date: 2018-10-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -429,7 +429,7 @@ files:
429
429
  - lib/generators/jinda/templates/seeds.rb
430
430
  - lib/generators/jinda/templates/spec/controllers/sessions_controller_spec.rb
431
431
  - lib/generators/jinda/templates/spec/features/userlogins_spec.rb
432
- - lib/generators/jinda/templates/spec/models/user_spec.rbx
432
+ - lib/generators/jinda/templates/spec/models/user_spec.rb
433
433
  - lib/generators/jinda/templates/spec/rails_helper.rb
434
434
  - lib/generators/jinda/templates/spec/spec_helper.rb
435
435
  - lib/generators/jinda/templates/spec/support/factory_bot.rb
@@ -1,30 +0,0 @@
1
- require 'rails_helper'
2
-
3
- # RSpec.describe "Jinda::User", :type => :model do
4
- RSpec.describe "Jinda/User", :type => :model do
5
-
6
- before(:all) do
7
- @user1 = create "Jinda/User"
8
- end
9
-
10
- it "has a unique code name" do
11
- user2 = build("Jinda/User", code: "tester", email: "tester@test.com")
12
- expect(user2).to be_valid
13
- end
14
-
15
- it "is valid with valid attributes" do
16
- expect(@user1).to be_valid
17
- end
18
-
19
- xit "is not valid without a code" do
20
- user2 = build("Jinda/User", code: nil)
21
- expect(user2).to_not be_valid
22
- end
23
-
24
- xit "is not valid without an email" do
25
- user2 = build("Jinda/User", email: nil)
26
- expect(user2).to_not be_valid
27
- end
28
-
29
- end
30
-