Skip to content

Commit e2f3d6a

Browse files
authored
Merge pull request #338 from Trim/tests-diary
Add tests for Diary model
2 parents 4b26e9c + 2ce456c commit e2f3d6a

File tree

12 files changed

+314
-3
lines changed

12 files changed

+314
-3
lines changed

Docker.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,20 @@ Note: currently, we didn't configure rails to show directly the
6868
`webconsole` in your browser. That's just because of time needed to
6969
find the good configuration, any help will be appreciated !
7070

71+
Run application tests
72+
=====================
73+
74+
To help maintainers, we are in the process of adding tests to check the
75+
application has still the expected behaviour.
76+
77+
To get help about writing tests, see the
78+
[Ruby on Rails documentation](https://guides.rubyonrails.org/testing.html#the-rails-test-runner)
79+
.
80+
81+
To run tests with Docker environment, you need to use this command:
82+
83+
`docker-compose run linuxfr.org bin/rails test -v`
84+
7185
Inspect database schema
7286
=======================
7387

Gemfile

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,15 @@ gem "sass-rails", "~>5.0", require: assets
4545
gem "rails-sass-images", require: assets
4646
gem "uglifier", require: assets
4747

48+
group :development, :test do
49+
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
50+
gem "byebug", platforms: :mri
51+
end
52+
4853
group :development do
4954
gem "annotate"
5055
gem "better_errors"
5156
gem "binding_of_caller"
52-
gem "byebug", platform: :mri
5357
gem "capistrano", "~>2.15", github: 'capistrano', branch: 'legacy-v2'
5458
gem "capistrano-maintenance"
5559
gem "letter_opener"
@@ -62,6 +66,12 @@ group :development do
6266
gem "web-console"
6367
end
6468

69+
group :test do
70+
# Adds support for Capybara system testing and selenium driver
71+
gem "capybara", ">= 2.15"
72+
gem "selenium-webdriver"
73+
end
74+
6575
group :production, :alpha do
6676
gem "unicorn", "~>5.1"
6777
gem "gctools", "~>0.2"

deployment/linuxfr.org/Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ ENV HOME /home/linuxfr.org
2525

2626
# Install node external dependencies
2727
COPY package*.json ./
28-
# Note: should use `npm ci`, but it freezes while running, that's strange
29-
RUN npm install --prod
28+
RUN npm ci
3029

3130
# Install external dependencies
3231
COPY Gemfile* ./

docker-compose.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ services:
1313
- ./app:/linuxfr.org/app
1414
- ./db:/linuxfr.org/db
1515
- ./public:/linuxfr.org/public
16+
- ./test:/linuxfr.org/test
1617
# uploads are shared with the nginx service
1718
- data-uploads:/linuxfr.org/uploads
1819
tmpfs:
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
require "test_helper"
2+
3+
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
4+
driven_by :selenium, using: :headless_firefox, screen_size: [1400, 1400]
5+
end

test/fixtures/accounts.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Required Anonyme login for Account model
2+
anonymous:
3+
user: community
4+
login: Anonyme
5+
6+
role: inactive
7+
8+
<% 1000.times do |n| %>
9+
visitor_<%= n%>:
10+
user: <%= "visitor_#{n}" %>
11+
login: <%= "visitor_#{n}" %>
12+
email: <%= "visitor_#{n}@example.com" %>
13+
role: visitor
14+
<% end %>
15+
16+
visitor_negative_karma:
17+
user: visitor_negative_karma
18+
login: visitor_negative_karma
19+
20+
role: visitor
21+
karma: -100
22+
23+
visitor_zero_karma:
24+
user: visitor_zero_karma
25+
login: visitor_zero_karma
26+
27+
role: visitor
28+
karma: 0
29+
30+
<% 7.times do |n| %>
31+
editor_<%= n%>:
32+
user: <%= "editor_#{n}" %>
33+
login: <%= "editor_#{n}" %>
34+
email: <%= "editor_#{n}@example.com" %>
35+
role: editor
36+
<% end %>
37+
38+
<% 2.times do |n| %>
39+
maintainer_<%= n%>:
40+
user: <%= "maintainer_#{n}" %>
41+
login: <%= "maintainer_#{n}" %>
42+
email: <%= "maintainer_#{n}@example.com" %>
43+
role: maintainer
44+
<% end %>
45+
46+
<% 12.times do |n| %>
47+
moderator_<%= n%>:
48+
user: <%= "moderator_#{n}" %>
49+
login: <%= "moderator_#{n}" %>
50+
email: <%= "moderator_#{n}@example.com" %>
51+
role: moderator
52+
<% end %>
53+
54+
<% 6.times do |n| %>
55+
admin_<%= n%>:
56+
user: <%= "admin_#{n}" %>
57+
login: <%= "admin_#{n}" %>
58+
email: <%= "admin_#{n}@example.com" %>
59+
role: admin
60+
<% end %>

test/fixtures/diaries.yml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
lorem_cc_licensed:
2+
title: Lorem ipsum
3+
cached_slug: lorem-ipsum
4+
owner: visitor_1
5+
body: |-
6+
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
7+
Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor.
8+
Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi.
9+
Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum
10+
diam nisl sit amet erat. Duis semper.
11+
12+
Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue.
13+
Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue.
14+
15+
Praesent egestas leo in pede. Praesent blandit odio eu enim.
16+
Pellentesque sed dui ut augue blandit sodales.
17+
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices
18+
posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum.
19+
Maecenas adipiscing ante non diam sodales hendrerit.
20+
wiki_body: >-
21+
<p>
22+
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
23+
Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor.
24+
Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi.
25+
Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum
26+
diam nisl sit amet erat. Duis semper.
27+
</p>
28+
<p>
29+
Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue.
30+
Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue.
31+
</p>
32+
<p>
33+
Praesent egestas leo in pede. Praesent blandit odio eu enim.
34+
Pellentesque sed dui ut augue blandit sodales.
35+
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices
36+
posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum.
37+
Maecenas adipiscing ante non diam sodales hendrerit.
38+
</p>
39+
40+
lorem_copyright:
41+
title: Lorem ipsum
42+
cached_slug: lorem-ipsum
43+
owner: visitor_2
44+
body: |-
45+
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
46+
Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor.
47+
Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi.
48+
Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum
49+
diam nisl sit amet erat. Duis semper.
50+
51+
Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue.
52+
Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue.
53+
54+
Praesent egestas leo in pede. Praesent blandit odio eu enim.
55+
Pellentesque sed dui ut augue blandit sodales.
56+
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices
57+
posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum.
58+
Maecenas adipiscing ante non diam sodales hendrerit.
59+
wiki_body: >-
60+
<p>
61+
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
62+
Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor.
63+
Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi.
64+
Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum
65+
diam nisl sit amet erat. Duis semper.
66+
</p>
67+
<p>
68+
Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue.
69+
Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue.
70+
</p>
71+
<p>
72+
Praesent egestas leo in pede. Praesent blandit odio eu enim.
73+
Pellentesque sed dui ut augue blandit sodales.
74+
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices
75+
posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum.
76+
Maecenas adipiscing ante non diam sodales hendrerit.
77+
</p>

test/fixtures/nodes.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
diary_lorem_cc_licensed:
2+
cc_licensed: true
3+
user: visitor_1
4+
content: lorem_cc_licensed
5+
content_type: Journal
6+
7+
diary_lorem_copyright:
8+
cc_licensed: false
9+
user: visitor_2
10+
content: lorem_copyright
11+
content_type: Journal

test/fixtures/sections.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
default:
2+
title: LinuxFr.org
3+
cached_slug: linuxfr-org

test/fixtures/users.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Required Collectif user for User model
2+
community:
3+
name: Collectif
4+
cached_slug: collectif
5+
6+
<% 1000.times do |n| %>
7+
visitor_<%= n%>:
8+
name: <%= "visitor_#{n}" %>
9+
cached_slug: <%= "visitor_#{n}" %>
10+
<% end %>
11+
12+
visitor_negative_karma:
13+
name: visitor_negative_karma
14+
cached_slug: visitor_negative_karma
15+
16+
visitor_zero_karma:
17+
name: visitor_zero_karma
18+
cached_slug: visitor_zero_karma
19+
20+
<% 7.times do |n| %>
21+
editor_<%= n%>:
22+
name: <%= "editor_#{n}" %>
23+
cached_slug: <%= "editor_#{n}" %>
24+
<% end %>
25+
26+
<% 2.times do |n| %>
27+
maintainer_<%= n%>:
28+
name: <%= "maintainer_#{n}" %>
29+
cached_slug: <%= "maintainer_#{n}" %>
30+
<% end %>
31+
32+
<% 12.times do |n| %>
33+
moderator_<%= n%>:
34+
name: <%= "moderator_#{n}" %>
35+
cached_slug: <%= "moderator_#{n}" %>
36+
<% end %>
37+
38+
<% 6.times do |n| %>
39+
admin_<%= n%>:
40+
name: <%= "admin_#{n}" %>
41+
cached_slug: <%= "admin_#{n}" %>
42+
<% end %>

0 commit comments

Comments
 (0)