Compare commits

..

413 Commits

Author SHA1 Message Date
google-labs-jules[bot]
f2421bf4c7 Here's the plan to add polymorphic comments and update related functionality:
This change introduces polymorphic comments, allowing you to comment on Photos, Plantings, Harvests, and Activities, in addition to Posts.

Key changes include:

-   **Comment Model:**
    -   Made `Comment.commentable` a polymorphic association.
    -   Added a data migration to move existing post comments to the new structure.
    -   Updated notification creation logic for polymorphic commentables.
-   **CommentsController:**
    -   Refactored to handle various commentable types using a `find_commentable` method.
-   **Ability Model:**
    -   Updated permissions for comment creation, editing (author/admin), and deletion (author/commentable owner/admin).
-   **Routes:**
    -   Added nested comment routes for Photos, Plantings, Harvests, Activities, and Posts using a `commentable` concern with shallow routes.
-   **Views:**
    -   Created generic partials for comment forms (`_form.html.haml`) and display (`_comment.html.haml`, `_comments.html.haml`).
    -   Integrated these partials into the show pages of all commentable types.
    -   Updated `comments/new` and `comments/edit` views to be generic.
    -   Relevant parent controller `show` actions now eager-load comments.
-   **Testing:**
    -   Added extensive model, controller (using shared examples), and feature tests to cover the new polymorphic comment functionality, including permissions and UI interactions for all commentable types.
    -   Updated and created factories as needed.

This fulfills the issue requirements for adding comments to multiple resource types with appropriate permissions.
2025-05-25 02:03:17 +00:00
Daniel O'Connor
bdad7bd222 Merge pull request #4059 from Growstuff/dependabot/bundler/rubocop-rails-2.32.0
Bump rubocop-rails from 2.31.0 to 2.32.0
2025-05-19 18:12:40 +09:30
dependabot[bot]
b07fff72d0 Bump rubocop-rails from 2.31.0 to 2.32.0
Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.31.0 to 2.32.0.
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.31.0...v2.32.0)

---
updated-dependencies:
- dependency-name: rubocop-rails
  dependency-version: 2.32.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 07:57:24 +00:00
Daniel O'Connor
bff516d413 Merge pull request #4057 from Growstuff/dependabot/bundler/bullet-8.0.7
Bump bullet from 8.0.6 to 8.0.7
2025-05-16 19:20:41 +09:30
dependabot[bot]
add339a09f Bump bullet from 8.0.6 to 8.0.7
Bumps [bullet](https://github.com/flyerhzm/bullet) from 8.0.6 to 8.0.7.
- [Changelog](https://github.com/flyerhzm/bullet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyerhzm/bullet/compare/8.0.6...8.0.7)

---
updated-dependencies:
- dependency-name: bullet
  dependency-version: 8.0.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-16 07:04:53 +00:00
dependabot[bot]
c59226c1f0 Merge pull request #4056 from Growstuff/dependabot/bundler/jquery-ui-rails-8.0.0 2025-05-14 10:11:20 +00:00
dependabot[bot]
7f8170d230 Bump jquery-ui-rails from 413265e to 8.0.0
Bumps [jquery-ui-rails](https://github.com/jquery-ui-rails/jquery-ui-rails) from `413265e` to 8.0.0. This release includes the previously tagged commit.
- [Release notes](https://github.com/jquery-ui-rails/jquery-ui-rails/releases)
- [Commits](413265e81f...v8.0.0)

---
updated-dependencies:
- dependency-name: jquery-ui-rails
  dependency-version: 8.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-14 08:01:14 +00:00
dependabot[bot]
4d12b9afd7 Merge pull request #4055 from Growstuff/dependabot/bundler/loofah-2.24.1 2025-05-13 10:51:19 +00:00
dependabot[bot]
0f8be52bdd Bump loofah from 2.24.0 to 2.24.1
Bumps [loofah](https://github.com/flavorjones/loofah) from 2.24.0 to 2.24.1.
- [Release notes](https://github.com/flavorjones/loofah/releases)
- [Changelog](https://github.com/flavorjones/loofah/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flavorjones/loofah/compare/v2.24.0...v2.24.1)

---
updated-dependencies:
- dependency-name: loofah
  dependency-version: 2.24.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-13 08:18:09 +00:00
dependabot[bot]
88098db188 Merge pull request #4045 from Growstuff/dependabot/bundler/faraday-2.13.1 2025-05-13 08:16:58 +00:00
dependabot[bot]
97fc9eb150 Bump faraday from 2.13.0 to 2.13.1
Bumps [faraday](https://github.com/lostisland/faraday) from 2.13.0 to 2.13.1.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v2.13.0...v2.13.1)

---
updated-dependencies:
- dependency-name: faraday
  dependency-version: 2.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-13 08:08:49 +00:00
dependabot[bot]
d0bdc1178e Merge pull request #4053 from Growstuff/dependabot/bundler/bullet-8.0.6 2025-05-13 08:07:37 +00:00
dependabot[bot]
02b0c1617f Bump bullet from 8.0.5 to 8.0.6
Bumps [bullet](https://github.com/flyerhzm/bullet) from 8.0.5 to 8.0.6.
- [Changelog](https://github.com/flyerhzm/bullet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyerhzm/bullet/compare/8.0.5...8.0.6)

---
updated-dependencies:
- dependency-name: bullet
  dependency-version: 8.0.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-13 07:59:30 +00:00
dependabot[bot]
93ea4af8d5 Merge pull request #4054 from Growstuff/dependabot/bundler/jquery-ui-rails-8.0.0 2025-05-13 07:58:17 +00:00
dependabot[bot]
7ccdb7ed66 Bump jquery-ui-rails from 413265e to 8.0.0
Bumps [jquery-ui-rails](https://github.com/jquery-ui-rails/jquery-ui-rails) from `413265e` to 8.0.0. This release includes the previously tagged commit.
- [Release notes](https://github.com/jquery-ui-rails/jquery-ui-rails/releases)
- [Commits](413265e81f...v8.0.0)

---
updated-dependencies:
- dependency-name: jquery-ui-rails
  dependency-version: 8.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 07:09:37 +00:00
Daniel O'Connor
6660181142 Merge pull request #4049 from Growstuff/dependabot/bundler/jquery-ui-rails-8.0.0
Bump jquery-ui-rails from `413265e` to 8.0.0
2025-05-09 00:38:51 +09:30
dependabot[bot]
b6cc950575 Merge pull request #4052 from Growstuff/dependabot/bundler/selenium-webdriver-4.32.0 2025-05-08 15:02:56 +00:00
dependabot[bot]
e699108d2a Bump selenium-webdriver from 4.31.0 to 4.32.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.31.0 to 4.32.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.31.0...selenium-4.32.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-version: 4.32.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-08 14:53:31 +00:00
dependabot[bot]
67c44fb17e Merge pull request #4048 from Growstuff/dependabot/bundler/rspec-rails-8.0.0 2025-05-08 14:49:53 +00:00
dependabot[bot]
11f2fbd399 Bump jquery-ui-rails from 413265e to 8.0.0
Bumps [jquery-ui-rails](https://github.com/jquery-ui-rails/jquery-ui-rails) from `413265e` to 8.0.0. This release includes the previously tagged commit.
- [Release notes](https://github.com/jquery-ui-rails/jquery-ui-rails/releases)
- [Commits](413265e81f...v8.0.0)

---
updated-dependencies:
- dependency-name: jquery-ui-rails
  dependency-version: 8.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-08 14:40:13 +00:00
dependabot[bot]
540941f3b7 Bump rspec-rails from 7.1.1 to 8.0.0
Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 7.1.1 to 8.0.0.
- [Changelog](https://github.com/rspec/rspec-rails/blob/main/Changelog.md)
- [Commits](https://github.com/rspec/rspec-rails/compare/v7.1.1...v8.0.0)

---
updated-dependencies:
- dependency-name: rspec-rails
  dependency-version: 8.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-08 14:39:22 +00:00
dependabot[bot]
c8797cd0db Merge pull request #4050 from Growstuff/dependabot/bundler/rubocop-1.75.5 2025-05-08 14:38:12 +00:00
dependabot[bot]
871535e902 Bump rubocop from 1.75.4 to 1.75.5
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.75.4 to 1.75.5.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.75.4...v1.75.5)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.75.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-08 13:33:09 +00:00
dependabot[bot]
be0ce48be2 Merge pull request #4051 from Growstuff/dependabot/bundler/active_median-0.6.0 2025-05-08 13:31:54 +00:00
dependabot[bot]
24f8f99691 Bump active_median from 0.5.0 to 0.6.0
Bumps [active_median](https://github.com/ankane/active_median) from 0.5.0 to 0.6.0.
- [Changelog](https://github.com/ankane/active_median/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/active_median/compare/v0.5.0...v0.6.0)

---
updated-dependencies:
- dependency-name: active_median
  dependency-version: 0.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 08:09:42 +00:00
dependabot[bot]
0988e598f4 Merge pull request #4046 from Growstuff/dependabot/bundler/net-imap-0.4.20 2025-04-29 14:36:52 +00:00
Daniel O'Connor
2e94ee9c6d Merge branch 'dev' into dependabot/bundler/net-imap-0.4.20 2025-04-29 23:59:10 +09:30
Daniel O'Connor
8d42aed06f Merge pull request #4043 from Growstuff/dependabot/bundler/jquery-ui-rails-7.0.0
Bump jquery-ui-rails from `413265e` to 7.0.0
2025-04-29 22:00:54 +09:30
dependabot[bot]
fbbef7747a Bump net-imap from 0.4.19 to 0.4.20
Bumps [net-imap](https://github.com/ruby/net-imap) from 0.4.19 to 0.4.20.
- [Release notes](https://github.com/ruby/net-imap/releases)
- [Commits](https://github.com/ruby/net-imap/compare/v0.4.19...v0.4.20)

---
updated-dependencies:
- dependency-name: net-imap
  dependency-version: 0.4.20
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-29 12:25:22 +00:00
dependabot[bot]
9297484c48 Merge pull request #4041 from Growstuff/dependabot/bundler/nokogiri-1.18.8 2025-04-29 12:24:02 +00:00
dependabot[bot]
8a507cb0bc Bump jquery-ui-rails from 413265e to 7.0.0
Bumps [jquery-ui-rails](https://github.com/jquery-ui-rails/jquery-ui-rails) from `413265e` to 7.0.0. This release includes the previously tagged commit.
- [Release notes](https://github.com/jquery-ui-rails/jquery-ui-rails/releases)
- [Commits](413265e81f...v7.0.0)

---
updated-dependencies:
- dependency-name: jquery-ui-rails
  dependency-version: 7.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-29 12:10:28 +00:00
dependabot[bot]
12dc2cbff4 Bump nokogiri from 1.18.7 to 1.18.8
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.18.7 to 1.18.8.
- [Release notes](https://github.com/sparklemotion/nokogiri/releases)
- [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.18.7...v1.18.8)

---
updated-dependencies:
- dependency-name: nokogiri
  dependency-version: 1.18.8
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-29 12:09:33 +00:00
dependabot[bot]
60cc7e6867 Merge pull request #4042 from Growstuff/dependabot/bundler/bullet-8.0.5 2025-04-29 12:08:22 +00:00
dependabot[bot]
29cb393c62 Bump bullet from 8.0.3 to 8.0.5
Bumps [bullet](https://github.com/flyerhzm/bullet) from 8.0.3 to 8.0.5.
- [Changelog](https://github.com/flyerhzm/bullet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyerhzm/bullet/compare/8.0.3...8.0.5)

---
updated-dependencies:
- dependency-name: bullet
  dependency-version: 8.0.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-29 11:59:00 +00:00
dependabot[bot]
88b0c9748c Merge pull request #4047 from Growstuff/dependabot/bundler/rubocop-1.75.4 2025-04-29 11:57:51 +00:00
dependabot[bot]
d60ae89e5a Bump rubocop from 1.75.2 to 1.75.4
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.75.2 to 1.75.4.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.75.2...v1.75.4)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.75.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-29 07:45:46 +00:00
dependabot[bot]
37b0831bdb Merge pull request #4030 from Growstuff/dependabot/bundler/jquery-ui-rails-7.0.0 2025-04-21 15:41:33 +00:00
dependabot[bot]
6b99d20e50 Bump jquery-ui-rails from 413265e to 7.0.0
Bumps [jquery-ui-rails](https://github.com/jquery-ui-rails/jquery-ui-rails) from `413265e` to 7.0.0. This release includes the previously tagged commit.
- [Release notes](https://github.com/jquery-ui-rails/jquery-ui-rails/releases)
- [Commits](413265e81f...v7.0.0)

---
updated-dependencies:
- dependency-name: jquery-ui-rails
  dependency-version: 7.0.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-21 10:13:53 +00:00
dependabot[bot]
cb0ee4e3b7 Merge pull request #4039 from Growstuff/dependabot/bundler/rubocop-rspec-3.6.0 2025-04-21 10:11:44 +00:00
dependabot[bot]
4074078560 Bump rubocop-rspec from 3.5.0 to 3.6.0
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.5.0...v3.6.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-version: 3.6.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-21 08:44:32 +00:00
dependabot[bot]
2745948c46 Merge pull request #4036 from Growstuff/dependabot/bundler/axe-core-capybara-4.10.3 2025-04-16 09:33:45 +00:00
dependabot[bot]
0fb10cfd24 Bump axe-core-capybara from 4.10.2 to 4.10.3
Bumps [axe-core-capybara](https://github.com/dequelabs/axe-core-gems) from 4.10.2 to 4.10.3.
- [Release notes](https://github.com/dequelabs/axe-core-gems/releases)
- [Changelog](https://github.com/dequelabs/axe-core-gems/blob/v4.10.3/CHANGELOG.md)
- [Commits](https://github.com/dequelabs/axe-core-gems/compare/v4.10.2...v4.10.3)

---
updated-dependencies:
- dependency-name: axe-core-capybara
  dependency-version: 4.10.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-16 07:59:16 +00:00
dependabot[bot]
172dff42c6 Merge pull request #4035 from Growstuff/dependabot/bundler/chartkick-5.1.5 2025-04-16 07:58:01 +00:00
dependabot[bot]
6d5238c1ce Bump chartkick from 5.1.4 to 5.1.5
Bumps [chartkick](https://github.com/ankane/chartkick) from 5.1.4 to 5.1.5.
- [Changelog](https://github.com/ankane/chartkick/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/chartkick/compare/v5.1.4...v5.1.5)

---
updated-dependencies:
- dependency-name: chartkick
  dependency-version: 5.1.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-16 07:47:42 +00:00
dependabot[bot]
3f78c15fc9 Merge pull request #4032 from Growstuff/dependabot/bundler/dotenv-rails-3.1.8 2025-04-14 10:24:48 +00:00
dependabot[bot]
bc1476b4fe Bump dotenv-rails from 3.1.7 to 3.1.8
Bumps [dotenv-rails](https://github.com/bkeepers/dotenv) from 3.1.7 to 3.1.8.
- [Release notes](https://github.com/bkeepers/dotenv/releases)
- [Changelog](https://github.com/bkeepers/dotenv/blob/main/Changelog.md)
- [Commits](https://github.com/bkeepers/dotenv/compare/v3.1.7...v3.1.8)

---
updated-dependencies:
- dependency-name: dotenv-rails
  dependency-version: 3.1.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 10:09:54 +00:00
dependabot[bot]
98e7226d67 Merge pull request #4031 from Growstuff/dependabot/bundler/faraday-2.13.0 2025-04-14 10:08:41 +00:00
dependabot[bot]
70c28b3468 Bump faraday from 2.12.2 to 2.13.0
Bumps [faraday](https://github.com/lostisland/faraday) from 2.12.2 to 2.13.0.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v2.12.2...v2.13.0)

---
updated-dependencies:
- dependency-name: faraday
  dependency-version: 2.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 10:00:27 +00:00
Daniel O'Connor
49e3180d17 Merge pull request #4033 from Growstuff/dependabot/bundler/icalendar-2.11.0
Bump icalendar from 2.10.3 to 2.11.0
2025-04-14 19:29:16 +09:30
dependabot[bot]
2b2dc853df Bump icalendar from 2.10.3 to 2.11.0
Bumps [icalendar](https://github.com/icalendar/icalendar) from 2.10.3 to 2.11.0.
- [Changelog](https://github.com/icalendar/icalendar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/icalendar/icalendar/compare/v2.10.3...v2.11.0)

---
updated-dependencies:
- dependency-name: icalendar
  dependency-version: 2.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 09:04:02 +00:00
dependabot[bot]
fbf25bfd61 Merge pull request #4034 from Growstuff/dependabot/bundler/scout_apm-5.6.4 2025-04-14 09:02:40 +00:00
dependabot[bot]
7bdc171917 Bump scout_apm from 5.6.2 to 5.6.4
Bumps [scout_apm](https://github.com/scoutapp/scout_apm_ruby) from 5.6.2 to 5.6.4.
- [Changelog](https://github.com/scoutapp/scout_apm_ruby/blob/master/CHANGELOG.markdown)
- [Commits](https://github.com/scoutapp/scout_apm_ruby/compare/v5.6.2...v5.6.4)

---
updated-dependencies:
- dependency-name: scout_apm
  dependency-version: 5.6.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 07:38:11 +00:00
dependabot[bot]
b1eae352cb Merge pull request #4028 from Growstuff/dependabot/bundler/selenium-webdriver-4.31.0 2025-04-09 09:17:30 +00:00
dependabot[bot]
56e8edb17e Bump selenium-webdriver from 4.30.1 to 4.31.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.30.1 to 4.31.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/commits/selenium-4.31.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-version: 4.31.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-09 09:09:36 +00:00
dependabot[bot]
db98ebb50f Merge pull request #4027 from Growstuff/dependabot/bundler/bullet-8.0.3 2025-04-09 09:08:27 +00:00
dependabot[bot]
98ae840ada Bump bullet from 8.0.2 to 8.0.3
Bumps [bullet](https://github.com/flyerhzm/bullet) from 8.0.2 to 8.0.3.
- [Changelog](https://github.com/flyerhzm/bullet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyerhzm/bullet/compare/8.0.2...8.0.3)

---
updated-dependencies:
- dependency-name: bullet
  dependency-version: 8.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-08 10:18:06 +00:00
dependabot[bot]
70b9071a79 Merge pull request #4029 from Growstuff/dependabot/bundler/haml_lint-0.62.0 2025-04-08 10:16:51 +00:00
dependabot[bot]
e484304eca Bump haml_lint from 0.61.1 to 0.62.0
Bumps [haml_lint](https://github.com/sds/haml-lint) from 0.61.1 to 0.62.0.
- [Release notes](https://github.com/sds/haml-lint/releases)
- [Changelog](https://github.com/sds/haml-lint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sds/haml-lint/compare/v0.61.1...v0.62.0)

---
updated-dependencies:
- dependency-name: haml_lint
  dependency-version: 0.62.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-08 07:06:00 +00:00
dependabot[bot]
400510a5e4 Merge pull request #4024 from Growstuff/dependabot/bundler/rubocop-rails-2.31.0 2025-04-05 16:00:04 +00:00
dependabot[bot]
ed8aced07e Bump rubocop-rails from 2.30.3 to 2.31.0
Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.30.3 to 2.31.0.
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.30.3...v2.31.0)

---
updated-dependencies:
- dependency-name: rubocop-rails
  dependency-version: 2.31.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-04 07:51:18 +00:00
dependabot[bot]
89b8e7b98c Merge pull request #4026 from Growstuff/dependabot/bundler/rubocop-1.75.2 2025-04-04 07:50:10 +00:00
dependabot[bot]
bb8a333a21 Bump rubocop from 1.75.1 to 1.75.2
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.75.1 to 1.75.2.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.75.1...v1.75.2)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-version: 1.75.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-04 07:40:15 +00:00
Daniel O'Connor
8d2f8ffe34 Merge pull request #4010 from Growstuff/dependabot/bundler/rspectre-0.2.0
Bump rspectre from 0.1.0 to 0.2.0
2025-04-04 18:09:34 +10:30
dependabot[bot]
56fcce0cce Merge pull request #4025 from Growstuff/dependabot/bundler/bullet-8.0.2 2025-04-04 07:39:01 +00:00
dependabot[bot]
03fed2139f Bump bullet from 8.0.1 to 8.0.2
Bumps [bullet](https://github.com/flyerhzm/bullet) from 8.0.1 to 8.0.2.
- [Changelog](https://github.com/flyerhzm/bullet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyerhzm/bullet/compare/8.0.1...8.0.2)

---
updated-dependencies:
- dependency-name: bullet
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-02 07:14:54 +00:00
dependabot[bot]
600da7f178 Bump rspectre from 0.1.0 to 0.2.0
Bumps [rspectre](https://github.com/dgollahon/rspectre) from 0.1.0 to 0.2.0.
- [Changelog](https://github.com/dgollahon/rspectre/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dgollahon/rspectre/compare/v0.1.0...v0.2.0)

---
updated-dependencies:
- dependency-name: rspectre
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-29 05:59:33 +00:00
dependabot[bot]
a7e5ec4f30 Bump scout_apm from 5.6.1 to 5.6.2 (#4013)
Bumps [scout_apm](https://github.com/scoutapp/scout_apm_ruby) from 5.6.1 to 5.6.2.
- [Changelog](https://github.com/scoutapp/scout_apm_ruby/blob/master/CHANGELOG.markdown)
- [Commits](https://github.com/scoutapp/scout_apm_ruby/compare/v5.6.1...v5.6.2)

---
updated-dependencies:
- dependency-name: scout_apm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-29 16:28:24 +10:30
Daniel O'Connor
91fa54fc06 Split CI into the core app, and then feature specs (#4022)
* Split feature tests off to own area

* Split up feature specs

* Split up feature specs

* Split up feature specs

* Split up pipeline

* Split up pipeline

* Split up pipeline

* Split up pipeline

* Split further

* Improve stability slightly

* Skip tagged flaky

* Split mroe
2025-03-29 16:10:33 +10:30
Daniel O'Connor
6d224bdc51 Merge pull request #4020 from Growstuff/version-bump
Bump ruby
2025-03-29 14:36:25 +10:30
Daniel O'Connor
01e8a4d572 Bump byebug from 11.1.3 to 12.0.0 (#4017)
Bumps [byebug](https://github.com/deivid-rodriguez/byebug) from 11.1.3 to 12.0.0.
- [Release notes](https://github.com/deivid-rodriguez/byebug/releases)
- [Changelog](https://github.com/deivid-rodriguez/byebug/blob/master/CHANGELOG.md)
- [Commits](https://github.com/deivid-rodriguez/byebug/compare/v11.1.3...v12.0.0)

---
updated-dependencies:
- dependency-name: byebug
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daniel O'Connor <daniel.oconnor@gmail.com>
2025-03-29 14:22:13 +10:30
Daniel O'Connor
f52c9423ed Merge branch 'dev' into dependabot/bundler/byebug-12.0.0 2025-03-29 14:21:56 +10:30
Daniel O'Connor
b48738a86c Merge branch 'dev' into version-bump 2025-03-29 14:21:07 +10:30
Daniel O'Connor
f1661c5f6e Improve reliability of test (#4021)
* Improve reliability of test

* Improve reliability of test

* Extra asserts

* Increase reliability by asserting the current path is right

* Comment out unreliable area
2025-03-29 14:20:52 +10:30
dependabot[bot]
c1bf906aa4 Bump byebug from 11.1.3 to 12.0.0
Bumps [byebug](https://github.com/deivid-rodriguez/byebug) from 11.1.3 to 12.0.0.
- [Release notes](https://github.com/deivid-rodriguez/byebug/releases)
- [Changelog](https://github.com/deivid-rodriguez/byebug/blob/master/CHANGELOG.md)
- [Commits](https://github.com/deivid-rodriguez/byebug/compare/v11.1.3...v12.0.0)

---
updated-dependencies:
- dependency-name: byebug
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-29 03:05:42 +00:00
Daniel O'Connor
176c142466 Merge pull request #4016 from Growstuff/dependabot/bundler/selenium-webdriver-4.30.1
Bump selenium-webdriver from 4.29.1 to 4.30.1
2025-03-29 13:34:33 +10:30
Daniel O'Connor
e2eecf4220 Bump ruby 2025-03-29 02:38:12 +00:00
dependabot[bot]
03cbd87a4f Bump selenium-webdriver from 4.29.1 to 4.30.1
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.29.1 to 4.30.1.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/commits)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-29 01:53:58 +00:00
Daniel O'Connor
f8ceddc1b1 Merge pull request #4014 from Growstuff/dependabot/bundler/haml_lint-0.61.1
Bump haml_lint from 0.61.0 to 0.61.1
2025-03-29 12:22:16 +10:30
Daniel O'Connor
cb9e04bd46 Merge pull request #4007 from Growstuff/dependabot/bundler/rubocop-factory_bot-2.27.1
Bump rubocop-factory_bot from 2.27.0 to 2.27.1
2025-03-29 12:21:59 +10:30
dependabot[bot]
8a49c10a31 Bump rubocop-factory_bot from 2.27.0 to 2.27.1
Bumps [rubocop-factory_bot](https://github.com/rubocop/rubocop-factory_bot) from 2.27.0 to 2.27.1.
- [Release notes](https://github.com/rubocop/rubocop-factory_bot/releases)
- [Changelog](https://github.com/rubocop/rubocop-factory_bot/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-factory_bot/compare/v2.27.0...v2.27.1)

---
updated-dependencies:
- dependency-name: rubocop-factory_bot
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-29 01:51:43 +00:00
Daniel O'Connor
ef352dce7d Merge pull request #4008 from Growstuff/dependabot/bundler/rubocop-capybara-2.22.1
Bump rubocop-capybara from 2.22.0 to 2.22.1
2025-03-29 12:21:23 +10:30
dependabot[bot]
edb986cacb Bump rubocop-capybara from 2.22.0 to 2.22.1
Bumps [rubocop-capybara](https://github.com/rubocop/rubocop-capybara) from 2.22.0 to 2.22.1.
- [Release notes](https://github.com/rubocop/rubocop-capybara/releases)
- [Changelog](https://github.com/rubocop/rubocop-capybara/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-capybara/compare/v2.22.0...v2.22.1)

---
updated-dependencies:
- dependency-name: rubocop-capybara
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-29 01:50:59 +00:00
Daniel O'Connor
ef4233947b Merge pull request #4015 from Growstuff/dependabot/bundler/nokogiri-1.18.4
Bump nokogiri from 1.18.3 to 1.18.4
2025-03-29 12:20:08 +10:30
Daniel O'Connor
e96d0d18b6 Merge pull request #4012 from Growstuff/dependabot/bundler/csv_shaper-1.4.0
Bump csv_shaper from 1.3.2 to 1.4.0
2025-03-29 12:19:44 +10:30
dependabot[bot]
330eae84de Bump haml_lint from 0.61.0 to 0.61.1
Bumps [haml_lint](https://github.com/sds/haml-lint) from 0.61.0 to 0.61.1.
- [Release notes](https://github.com/sds/haml-lint/releases)
- [Changelog](https://github.com/sds/haml-lint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sds/haml-lint/compare/v0.61.0...v0.61.1)

---
updated-dependencies:
- dependency-name: haml_lint
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-29 01:47:09 +00:00
dependabot[bot]
42cef4780f Bump nokogiri from 1.18.3 to 1.18.4
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.18.3 to 1.18.4.
- [Release notes](https://github.com/sparklemotion/nokogiri/releases)
- [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.18.3...v1.18.4)

---
updated-dependencies:
- dependency-name: nokogiri
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-29 01:47:07 +00:00
dependabot[bot]
a2d30f8188 Bump csv_shaper from 1.3.2 to 1.4.0
Bumps [csv_shaper](https://github.com/paulspringett/csv_shaper) from 1.3.2 to 1.4.0.
- [Release notes](https://github.com/paulspringett/csv_shaper/releases)
- [Commits](https://github.com/paulspringett/csv_shaper/commits)

---
updated-dependencies:
- dependency-name: csv_shaper
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-29 01:47:00 +00:00
Daniel O'Connor
8c73383bdb Merge pull request #4018 from Growstuff/dependabot/bundler/rubocop-1.75.1
Bump rubocop from 1.73.2 to 1.75.1
2025-03-29 12:15:53 +10:30
dependabot[bot]
96e8a9dfc7 Bump rubocop from 1.73.2 to 1.75.1
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.73.2 to 1.75.1.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.73.2...v1.75.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-27 07:21:19 +00:00
Daniel O'Connor
112d216f6b Merge branch 'mainline' into dev 2025-03-18 20:04:39 +10:30
dependabot[bot]
75804eec09 Merge pull request #4005 from Growstuff/dependabot/bundler/platform-api-3.8.0 2025-03-13 07:40:27 +00:00
dependabot[bot]
ff56f70ba4 Bump platform-api from 3.7.0 to 3.8.0
Bumps [platform-api](https://github.com/heroku/platform-api) from 3.7.0 to 3.8.0.
- [Changelog](https://github.com/heroku/platform-api/blob/master/CHANGELOG.md)
- [Commits](https://github.com/heroku/platform-api/compare/v3.7.0...v3.8.0)

---
updated-dependencies:
- dependency-name: platform-api
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-12 07:33:48 +00:00
dependabot[bot]
93d0384420 Merge pull request #4000 from Growstuff/dependabot/bundler/rubocop-factory_bot-2.27.0 2025-03-11 12:05:01 +00:00
dependabot[bot]
a4b3dd68a7 Bump rubocop-factory_bot from 2.26.1 to 2.27.0
Bumps [rubocop-factory_bot](https://github.com/rubocop/rubocop-factory_bot) from 2.26.1 to 2.27.0.
- [Release notes](https://github.com/rubocop/rubocop-factory_bot/releases)
- [Changelog](https://github.com/rubocop/rubocop-factory_bot/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-factory_bot/compare/v2.26.1...v2.27.0)

---
updated-dependencies:
- dependency-name: rubocop-factory_bot
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-11 11:47:38 +00:00
dependabot[bot]
6ad406bad1 Merge pull request #4003 from Growstuff/dependabot/bundler/rubocop-rspec_rails-2.31.0 2025-03-11 11:46:27 +00:00
dependabot[bot]
7759b0dd61 Bump rubocop-rspec_rails from 2.30.0 to 2.31.0
Bumps [rubocop-rspec_rails](https://github.com/rubocop/rubocop-rspec_rails) from 2.30.0 to 2.31.0.
- [Release notes](https://github.com/rubocop/rubocop-rspec_rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec_rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec_rails/compare/v2.30.0...v2.31.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec_rails
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-11 11:27:35 +00:00
dependabot[bot]
2beefb8716 Merge pull request #3997 from Growstuff/dependabot/bundler/rubocop-1.73.2 2025-03-11 11:26:24 +00:00
dependabot[bot]
2c55de17c2 Bump rubocop from 1.73.0 to 1.73.2
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.73.0 to 1.73.2.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.73.0...v1.73.2)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-11 11:08:28 +00:00
Daniel O'Connor
ab4f00fc28 Merge pull request #4004 from Growstuff/dependabot/bundler/rubocop-capybara-2.22.0
Bump rubocop-capybara from 2.21.0 to 2.22.0
2025-03-11 21:37:13 +10:30
dependabot[bot]
c599c36be5 Bump rubocop-capybara from 2.21.0 to 2.22.0
Bumps [rubocop-capybara](https://github.com/rubocop/rubocop-capybara) from 2.21.0 to 2.22.0.
- [Release notes](https://github.com/rubocop/rubocop-capybara/releases)
- [Changelog](https://github.com/rubocop/rubocop-capybara/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-capybara/compare/v2.21.0...v2.22.0)

---
updated-dependencies:
- dependency-name: rubocop-capybara
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-11 10:25:06 +00:00
Daniel O'Connor
f5bcc76b91 Merge pull request #4002 from Growstuff/dependabot/bundler/rack-2.2.13
Bump rack from 2.2.12 to 2.2.13
2025-03-11 20:53:55 +10:30
dependabot[bot]
cb57098db7 Bump rack from 2.2.12 to 2.2.13
Bumps [rack](https://github.com/rack/rack) from 2.2.12 to 2.2.13.
- [Release notes](https://github.com/rack/rack/releases)
- [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rack/rack/compare/v2.2.12...v2.2.13)

---
updated-dependencies:
- dependency-name: rack
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-11 02:44:56 +00:00
dependabot[bot]
4372b9b286 Merge pull request #3999 from Growstuff/dependabot/bundler/rubocop-rails-2.30.3 2025-03-10 14:28:50 +00:00
dependabot[bot]
5e81e617fe Bump rubocop-rails from 2.30.2 to 2.30.3
Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.30.2 to 2.30.3.
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.30.2...v2.30.3)

---
updated-dependencies:
- dependency-name: rubocop-rails
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 14:10:26 +00:00
dependabot[bot]
2b921faa65 Merge pull request #3998 from Growstuff/dependabot/bundler/uri-1.0.3 2025-03-10 14:08:36 +00:00
dependabot[bot]
17b1ff5f7d Bump uri from 1.0.2 to 1.0.3
Bumps [uri](https://github.com/ruby/uri) from 1.0.2 to 1.0.3.
- [Release notes](https://github.com/ruby/uri/releases)
- [Commits](https://github.com/ruby/uri/compare/v1.0.2...v1.0.3)

---
updated-dependencies:
- dependency-name: uri
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 13:50:36 +00:00
dependabot[bot]
db2cb24fcf Merge pull request #4001 from Growstuff/dependabot/bundler/i18n-tasks-1.0.15 2025-03-10 13:49:07 +00:00
dependabot[bot]
c337fb4733 Bump i18n-tasks from 1.0.14 to 1.0.15
Bumps [i18n-tasks](https://github.com/glebm/i18n-tasks) from 1.0.14 to 1.0.15.
- [Release notes](https://github.com/glebm/i18n-tasks/releases)
- [Changelog](https://github.com/glebm/i18n-tasks/blob/main/CHANGES.md)
- [Commits](https://github.com/glebm/i18n-tasks/compare/v1.0.14...v1.0.15)

---
updated-dependencies:
- dependency-name: i18n-tasks
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 07:20:30 +00:00
dependabot[bot]
25cac12ef6 Merge pull request #3996 from Growstuff/dependabot/bundler/rubocop-1.73.0 2025-02-27 09:32:52 +00:00
dependabot[bot]
a1b6aa540a Bump rubocop from 1.72.2 to 1.73.0
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.72.2 to 1.73.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.72.2...v1.73.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-27 07:13:57 +00:00
Daniel O'Connor
2ae6ae91f8 Merge pull request #3993 from Growstuff/dependabot/bundler/rubocop-rails-2.30.2
Bump rubocop-rails from 2.30.1 to 2.30.2
2025-02-25 21:52:31 +10:30
dependabot[bot]
62a2f226fe Bump rubocop-rails from 2.30.1 to 2.30.2
Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.30.1 to 2.30.2.
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.30.1...v2.30.2)

---
updated-dependencies:
- dependency-name: rubocop-rails
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-25 08:47:16 +00:00
dependabot[bot]
d7e227b315 Merge pull request #3995 from Growstuff/dependabot/bundler/oj-3.16.10 2025-02-25 08:46:03 +00:00
dependabot[bot]
c601b01828 Bump oj from 3.16.9 to 3.16.10
Bumps [oj](https://github.com/ohler55/oj) from 3.16.9 to 3.16.10.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.16.9...v3.16.10)

---
updated-dependencies:
- dependency-name: oj
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-25 08:26:46 +00:00
Daniel O'Connor
1070f9f208 Merge pull request #3994 from Growstuff/dependabot/bundler/haml_lint-0.61.0
Bump haml_lint from 0.60.0 to 0.61.0
2025-02-25 18:55:30 +10:30
dependabot[bot]
83b83a85c5 Bump haml_lint from 0.60.0 to 0.61.0
Bumps [haml_lint](https://github.com/sds/haml-lint) from 0.60.0 to 0.61.0.
- [Release notes](https://github.com/sds/haml-lint/releases)
- [Changelog](https://github.com/sds/haml-lint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sds/haml-lint/compare/v0.60.0...v0.61.0)

---
updated-dependencies:
- dependency-name: haml_lint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-25 08:00:35 +00:00
dependabot[bot]
d5e1fd0b3a Merge pull request #3989 from Growstuff/dependabot/bundler/chartkick-5.1.4 2025-02-25 07:59:21 +00:00
dependabot[bot]
4dce3cbf69 Bump chartkick from 5.1.3 to 5.1.4
Bumps [chartkick](https://github.com/ankane/chartkick) from 5.1.3 to 5.1.4.
- [Changelog](https://github.com/ankane/chartkick/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/chartkick/compare/v5.1.3...v5.1.4)

---
updated-dependencies:
- dependency-name: chartkick
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-25 07:40:12 +00:00
dependabot[bot]
c0c3b04bb4 Merge pull request #3992 from Growstuff/dependabot/bundler/selenium-webdriver-4.29.1 2025-02-25 07:38:57 +00:00
dependabot[bot]
b9b969134b Bump selenium-webdriver from 4.29.0 to 4.29.1
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.29.0 to 4.29.1.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/commits)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-24 08:58:06 +00:00
dependabot[bot]
712e08ccb0 Merge pull request #3991 from Growstuff/dependabot/bundler/scout_apm-5.6.1 2025-02-24 08:56:46 +00:00
dependabot[bot]
d6bb654e07 Bump scout_apm from 5.6.0 to 5.6.1
Bumps [scout_apm](https://github.com/scoutapp/scout_apm_ruby) from 5.6.0 to 5.6.1.
- [Changelog](https://github.com/scoutapp/scout_apm_ruby/blob/master/CHANGELOG.markdown)
- [Commits](https://github.com/scoutapp/scout_apm_ruby/compare/v5.6.0...v5.6.1)

---
updated-dependencies:
- dependency-name: scout_apm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-24 07:30:51 +00:00
dependabot[bot]
bd4e1f0573 Merge pull request #3990 from Growstuff/dependabot/bundler/selenium-webdriver-4.29.0 2025-02-21 07:30:04 +00:00
dependabot[bot]
7bf24c7340 Bump selenium-webdriver from 4.28.0 to 4.29.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.28.0 to 4.29.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.28.0...selenium-4.29.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-21 07:09:49 +00:00
dependabot[bot]
73e2e8cb0a Merge pull request #3971 from Growstuff/dependabot/bundler/puma-6.6.0 2025-02-19 21:25:29 +00:00
dependabot[bot]
215a6f0265 Bump puma from 6.5.0 to 6.6.0
Bumps [puma](https://github.com/puma/puma) from 6.5.0 to 6.6.0.
- [Release notes](https://github.com/puma/puma/releases)
- [Changelog](https://github.com/puma/puma/blob/master/History.md)
- [Commits](https://github.com/puma/puma/compare/v6.5.0...v6.6.0)

---
updated-dependencies:
- dependency-name: puma
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-19 21:05:48 +00:00
Daniel O'Connor
ea892bf472 Merge pull request #3988 from Growstuff/dependabot/bundler/nokogiri-1.18.3
Bump nokogiri from 1.18.2 to 1.18.3
2025-02-20 07:34:33 +10:30
dependabot[bot]
f1b1def76c Bump nokogiri from 1.18.2 to 1.18.3
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.18.2 to 1.18.3.
- [Release notes](https://github.com/sparklemotion/nokogiri/releases)
- [Changelog](https://github.com/sparklemotion/nokogiri/blob/v1.18.3/CHANGELOG.md)
- [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.18.2...v1.18.3)

---
updated-dependencies:
- dependency-name: nokogiri
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-19 13:19:41 +00:00
dependabot[bot]
4c0567d863 Merge pull request #3973 from Growstuff/dependabot/bundler/chartkick-5.1.3 2025-02-18 11:51:24 +00:00
dependabot[bot]
460d5453e4 Bump chartkick from 5.1.2 to 5.1.3
Bumps [chartkick](https://github.com/ankane/chartkick) from 5.1.2 to 5.1.3.
- [Changelog](https://github.com/ankane/chartkick/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/chartkick/compare/v5.1.2...v5.1.3)

---
updated-dependencies:
- dependency-name: chartkick
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-18 11:31:56 +00:00
dependabot[bot]
0cdb133f71 Merge pull request #3976 from Growstuff/dependabot/bundler/active_utils-3.5.0 2025-02-18 11:30:46 +00:00
dependabot[bot]
22ff9a7ea4 Bump active_utils from 3.4.1 to 3.5.0
Bumps [active_utils](https://github.com/shopify/active_utils) from 3.4.1 to 3.5.0.
- [Release notes](https://github.com/shopify/active_utils/releases)
- [Changelog](https://github.com/Shopify/active_utils/blob/main/CHANGELOG.md)
- [Commits](https://github.com/shopify/active_utils/compare/v3.4.1...v3.5.0)

---
updated-dependencies:
- dependency-name: active_utils
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-18 11:12:32 +00:00
dependabot[bot]
688d530af0 Merge pull request #3980 from Growstuff/dependabot/bundler/bullet-8.0.1 2025-02-18 11:11:16 +00:00
dependabot[bot]
4aea1139c1 Bump bullet from 8.0.0 to 8.0.1
Bumps [bullet](https://github.com/flyerhzm/bullet) from 8.0.0 to 8.0.1.
- [Changelog](https://github.com/flyerhzm/bullet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyerhzm/bullet/compare/8.0.0...8.0.1)

---
updated-dependencies:
- dependency-name: bullet
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-18 10:53:39 +00:00
dependabot[bot]
8f8af61158 Merge pull request #3972 from Growstuff/dependabot/bundler/haml_lint-0.60.0 2025-02-18 10:52:24 +00:00
dependabot[bot]
8265030b42 Bump haml_lint from 0.59.0 to 0.60.0
Bumps [haml_lint](https://github.com/sds/haml-lint) from 0.59.0 to 0.60.0.
- [Release notes](https://github.com/sds/haml-lint/releases)
- [Changelog](https://github.com/sds/haml-lint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sds/haml-lint/compare/v0.59.0...v0.60.0)

---
updated-dependencies:
- dependency-name: haml_lint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-18 10:34:31 +00:00
dependabot[bot]
5164eaf6d2 Merge pull request #3977 from Growstuff/dependabot/bundler/rspec-rails-7.1.1 2025-02-18 10:33:12 +00:00
dependabot[bot]
9eef4ba3b0 Bump rspec-rails from 7.1.0 to 7.1.1
Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 7.1.0 to 7.1.1.
- [Changelog](https://github.com/rspec/rspec-rails/blob/main/Changelog.md)
- [Commits](https://github.com/rspec/rspec-rails/compare/v7.1.0...v7.1.1)

---
updated-dependencies:
- dependency-name: rspec-rails
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-18 10:15:34 +00:00
dependabot[bot]
d0adf5d6ee Merge pull request #3981 from Growstuff/dependabot/bundler/sidekiq-7.3.9 2025-02-18 10:14:19 +00:00
dependabot[bot]
e47a24442e Bump sidekiq from 7.3.8 to 7.3.9
Bumps [sidekiq](https://github.com/sidekiq/sidekiq) from 7.3.8 to 7.3.9.
- [Changelog](https://github.com/sidekiq/sidekiq/blob/main/Changes.md)
- [Commits](https://github.com/sidekiq/sidekiq/compare/v7.3.8...v7.3.9)

---
updated-dependencies:
- dependency-name: sidekiq
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-18 09:56:16 +00:00
dependabot[bot]
5fba2cb78f Merge pull request #3983 from Growstuff/dependabot/bundler/rubocop-rails-2.30.1 2025-02-18 09:55:47 +00:00
dependabot[bot]
431daa89f4 Merge pull request #3987 from Growstuff/dependabot/bundler/rack-2.2.11 2025-02-18 09:55:16 +00:00
dependabot[bot]
1920026314 Bump rubocop-rails from 2.29.1 to 2.30.1
Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.29.1 to 2.30.1.
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.29.1...v2.30.1)

---
updated-dependencies:
- dependency-name: rubocop-rails
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-18 09:37:11 +00:00
dependabot[bot]
847112f054 Bump rack from 2.2.10 to 2.2.11
Bumps [rack](https://github.com/rack/rack) from 2.2.10 to 2.2.11.
- [Release notes](https://github.com/rack/rack/releases)
- [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rack/rack/compare/v2.2.10...v2.2.11)

---
updated-dependencies:
- dependency-name: rack
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-18 09:37:07 +00:00
dependabot[bot]
7f8f6972ac Merge pull request #3984 from Growstuff/dependabot/bundler/rubocop-rspec-3.5.0 2025-02-18 09:35:49 +00:00
dependabot[bot]
5e2554d534 Bump rubocop-rspec from 3.4.0 to 3.5.0
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.4.0...v3.5.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-18 09:17:34 +00:00
dependabot[bot]
d804fb5f6c Merge pull request #3985 from Growstuff/dependabot/bundler/rubocop-rake-0.7.1 2025-02-18 09:16:16 +00:00
dependabot[bot]
7db43d0da0 Bump rubocop-rake from 0.6.0 to 0.7.1
Bumps [rubocop-rake](https://github.com/rubocop/rubocop-rake) from 0.6.0 to 0.7.1.
- [Release notes](https://github.com/rubocop/rubocop-rake/releases)
- [Changelog](https://github.com/rubocop/rubocop-rake/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rake/compare/v0.6.0...v0.7.1)

---
updated-dependencies:
- dependency-name: rubocop-rake
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-18 08:58:19 +00:00
dependabot[bot]
35def81864 Merge pull request #3979 from Growstuff/dependabot/bundler/net-imap-0.4.19 2025-02-18 08:56:58 +00:00
dependabot[bot]
817fc66aff Bump net-imap from 0.4.17 to 0.4.19
Bumps [net-imap](https://github.com/ruby/net-imap) from 0.4.17 to 0.4.19.
- [Release notes](https://github.com/ruby/net-imap/releases)
- [Commits](https://github.com/ruby/net-imap/compare/v0.4.17...v0.4.19)

---
updated-dependencies:
- dependency-name: net-imap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-18 08:38:45 +00:00
dependabot[bot]
5ac131c823 Merge pull request #3978 from Growstuff/dependabot/bundler/msgpack-1.8.0 2025-02-18 08:37:28 +00:00
dependabot[bot]
b88616be6a Bump msgpack from 1.7.5 to 1.8.0
Bumps [msgpack](https://github.com/msgpack/msgpack-ruby) from 1.7.5 to 1.8.0.
- [Changelog](https://github.com/msgpack/msgpack-ruby/blob/master/ChangeLog)
- [Commits](https://github.com/msgpack/msgpack-ruby/compare/v1.7.5...v1.8.0)

---
updated-dependencies:
- dependency-name: msgpack
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-18 08:18:36 +00:00
dependabot[bot]
4aa7685ed0 Merge pull request #3986 from Growstuff/dependabot/bundler/rubocop-1.72.2 2025-02-18 08:17:22 +00:00
dependabot[bot]
88dc17b99c Bump rubocop from 1.70.0 to 1.72.2
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.70.0 to 1.72.2.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.70.0...v1.72.2)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-18 07:27:54 +00:00
dependabot[bot]
f0de3e9ece Merge pull request #3970 from Growstuff/dependabot/bundler/rubocop-rails-2.29.1 2025-01-27 03:27:06 +00:00
dependabot[bot]
71cd37a476 Bump rubocop-rails from 2.28.0 to 2.29.1
Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.28.0 to 2.29.1.
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.28.0...v2.29.1)

---
updated-dependencies:
- dependency-name: rubocop-rails
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 01:28:13 +00:00
dependabot[bot]
e6fbb279ad Merge pull request #3967 from Growstuff/dependabot/bundler/sidekiq-7.3.8 2025-01-27 01:27:03 +00:00
dependabot[bot]
d57ffc1d45 Bump sidekiq from 7.3.7 to 7.3.8
Bumps [sidekiq](https://github.com/sidekiq/sidekiq) from 7.3.7 to 7.3.8.
- [Changelog](https://github.com/sidekiq/sidekiq/blob/main/Changes.md)
- [Commits](https://github.com/sidekiq/sidekiq/compare/v7.3.7...v7.3.8)

---
updated-dependencies:
- dependency-name: sidekiq
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-21 11:36:12 +00:00
dependabot[bot]
93911e0d48 Merge pull request #3965 from Growstuff/dependabot/bundler/selenium-webdriver-4.28.0 2025-01-21 11:35:01 +00:00
dependabot[bot]
0b14272190 Bump selenium-webdriver from 4.27.0 to 4.28.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.27.0 to 4.28.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.27.0...selenium-4.28.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-21 11:15:57 +00:00
dependabot[bot]
69099f68ea Merge pull request #3966 from Growstuff/dependabot/bundler/rubocop-rspec-3.4.0 2025-01-21 11:14:22 +00:00
dependabot[bot]
9715bbc0b3 Bump rubocop-rspec from 3.3.0 to 3.4.0
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.3.0...v3.4.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-21 10:55:50 +00:00
dependabot[bot]
7cb9169042 Merge pull request #3964 from Growstuff/dependabot/bundler/terser-1.2.5 2025-01-21 10:54:36 +00:00
dependabot[bot]
f20594f829 Bump terser from 1.2.4 to 1.2.5
Bumps [terser](https://github.com/ahorek/terser-ruby) from 1.2.4 to 1.2.5.
- [Release notes](https://github.com/ahorek/terser-ruby/releases)
- [Changelog](https://github.com/ahorek/terser-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ahorek/terser-ruby/compare/1.2.4...1.2.5)

---
updated-dependencies:
- dependency-name: terser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-21 07:59:49 +00:00
dependabot[bot]
41bc144d37 Merge pull request #3961 from Growstuff/dependabot/bundler/recaptcha-5.19.0 2025-01-16 22:12:19 +00:00
dependabot[bot]
e27215aa7c Bump recaptcha from 5.18.0 to 5.19.0
Bumps [recaptcha](https://github.com/ambethia/recaptcha) from 5.18.0 to 5.19.0.
- [Changelog](https://github.com/ambethia/recaptcha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ambethia/recaptcha/compare/v5.18.0...v5.19.0)

---
updated-dependencies:
- dependency-name: recaptcha
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-16 21:53:01 +00:00
dependabot[bot]
1439cbb236 Merge pull request #3960 from Growstuff/dependabot/bundler/rubocop-1.70.0 2025-01-16 21:51:51 +00:00
dependabot[bot]
df6ea018e0 Bump rubocop from 1.69.2 to 1.70.0
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.69.2 to 1.70.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.69.2...v1.70.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-16 11:46:00 +00:00
dependabot[bot]
cb1b467d50 Merge pull request #3962 from Growstuff/dependabot/bundler/scout_apm-5.6.0 2025-01-16 11:44:47 +00:00
dependabot[bot]
c75dff0f3a Bump scout_apm from 5.5.0 to 5.6.0
Bumps [scout_apm](https://github.com/scoutapp/scout_apm_ruby) from 5.5.0 to 5.6.0.
- [Changelog](https://github.com/scoutapp/scout_apm_ruby/blob/master/CHANGELOG.markdown)
- [Commits](https://github.com/scoutapp/scout_apm_ruby/compare/v5.5.0...v5.6.0)

---
updated-dependencies:
- dependency-name: scout_apm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-16 07:10:08 +00:00
dependabot[bot]
ed0eff798d Merge pull request #3959 from Growstuff/dependabot/bundler/scout_apm-5.5.0 2025-01-04 01:26:18 +00:00
dependabot[bot]
53e2ad50f2 Bump scout_apm from 5.4.0 to 5.5.0
Bumps [scout_apm](https://github.com/scoutapp/scout_apm_ruby) from 5.4.0 to 5.5.0.
- [Changelog](https://github.com/scoutapp/scout_apm_ruby/blob/master/CHANGELOG.markdown)
- [Commits](https://github.com/scoutapp/scout_apm_ruby/compare/v5.4.0...v5.5.0)

---
updated-dependencies:
- dependency-name: scout_apm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-03 07:43:55 +00:00
dependabot[bot]
0f58708250 Merge pull request #3958 from Growstuff/dependabot/bundler/loofah-2.24.0 2025-01-01 14:05:53 +00:00
dependabot[bot]
45f0cf7368 Bump loofah from 2.23.1 to 2.24.0
Bumps [loofah](https://github.com/flavorjones/loofah) from 2.23.1 to 2.24.0.
- [Release notes](https://github.com/flavorjones/loofah/releases)
- [Changelog](https://github.com/flavorjones/loofah/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flavorjones/loofah/compare/v2.23.1...v2.24.0)

---
updated-dependencies:
- dependency-name: loofah
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-01 07:15:54 +00:00
dependabot[bot]
8a2d9e1390 Merge pull request #3957 from Growstuff/dependabot/bundler/oj-3.16.9 2024-12-30 10:11:05 +00:00
dependabot[bot]
af8fb9cc0b Bump oj from 3.16.8 to 3.16.9
Bumps [oj](https://github.com/ohler55/oj) from 3.16.8 to 3.16.9.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.16.8...v3.16.9)

---
updated-dependencies:
- dependency-name: oj
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 07:48:52 +00:00
dependabot[bot]
3cb8b33c6a Merge pull request #3955 from Growstuff/dependabot/bundler/pry-0.15.2 2024-12-28 04:32:59 +00:00
dependabot[bot]
7b59549729 Bump pry from 0.15.0 to 0.15.2
Bumps [pry](https://github.com/pry/pry) from 0.15.0 to 0.15.2.
- [Release notes](https://github.com/pry/pry/releases)
- [Changelog](https://github.com/pry/pry/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pry/pry/compare/v0.15.0...v0.15.2)

---
updated-dependencies:
- dependency-name: pry
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-28 04:13:23 +00:00
dependabot[bot]
8ead2f2f44 Merge pull request #3956 from Growstuff/dependabot/bundler/rubocop-rails-2.28.0 2024-12-28 04:12:15 +00:00
dependabot[bot]
570cacd5d6 Bump rubocop-rails from 2.27.0 to 2.28.0
Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.27.0 to 2.28.0.
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.27.0...v2.28.0)

---
updated-dependencies:
- dependency-name: rubocop-rails
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-26 07:39:09 +00:00
Daniel O'Connor
26c3527347 Merge pull request #3953 from Growstuff/dependabot/bundler/sidekiq-7.3.7
Bump sidekiq from 7.3.6 to 7.3.7
2024-12-23 19:24:37 +10:30
dependabot[bot]
cef048a124 Bump sidekiq from 7.3.6 to 7.3.7
Bumps [sidekiq](https://github.com/sidekiq/sidekiq) from 7.3.6 to 7.3.7.
- [Changelog](https://github.com/sidekiq/sidekiq/blob/main/Changes.md)
- [Commits](https://github.com/sidekiq/sidekiq/compare/v7.3.6...v7.3.7)

---
updated-dependencies:
- dependency-name: sidekiq
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 08:04:36 +00:00
Daniel O'Connor
05fb8d68cc Merge pull request #3954 from Growstuff/dependabot/bundler/geocoder-1.8.5
Bump geocoder from 1.8.4 to 1.8.5
2024-12-23 18:33:23 +10:30
dependabot[bot]
cf282680bb Bump geocoder from 1.8.4 to 1.8.5
Bumps [geocoder](https://github.com/alexreisner/geocoder) from 1.8.4 to 1.8.5.
- [Changelog](https://github.com/alexreisner/geocoder/blob/master/CHANGELOG.md)
- [Commits](https://github.com/alexreisner/geocoder/compare/v1.8.4...v1.8.5)

---
updated-dependencies:
- dependency-name: geocoder
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-19 07:13:31 +00:00
Daniel O'Connor
9289ab7212 Merge pull request #3952 from Growstuff/dependabot/bundler/dotenv-rails-3.1.7
Bump dotenv-rails from 3.1.6 to 3.1.7
2024-12-18 21:07:03 +10:30
dependabot[bot]
2d8c54d75a Bump dotenv-rails from 3.1.6 to 3.1.7
Bumps [dotenv-rails](https://github.com/bkeepers/dotenv) from 3.1.6 to 3.1.7.
- [Release notes](https://github.com/bkeepers/dotenv/releases)
- [Changelog](https://github.com/bkeepers/dotenv/blob/main/Changelog.md)
- [Commits](https://github.com/bkeepers/dotenv/compare/v3.1.6...v3.1.7)

---
updated-dependencies:
- dependency-name: dotenv-rails
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-18 07:24:29 +00:00
dependabot[bot]
afbd99ea02 Merge pull request #3951 from Growstuff/dependabot/bundler/oj-3.16.8 2024-12-16 10:57:09 +00:00
dependabot[bot]
b1dd4097d3 Bump oj from 3.16.7 to 3.16.8
Bumps [oj](https://github.com/ohler55/oj) from 3.16.7 to 3.16.8.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.16.7...v3.16.8)

---
updated-dependencies:
- dependency-name: oj
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-16 07:56:18 +00:00
dependabot[bot]
d2516c667d Merge pull request #3946 from Growstuff/dependabot/bundler/rubocop-rspec-3.3.0 2024-12-16 06:57:27 +00:00
dependabot[bot]
1db1f85757 Bump rubocop-rspec from 3.2.0 to 3.3.0
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-15 23:28:43 +00:00
dependabot[bot]
7b1baa0529 Merge pull request #3949 from Growstuff/dependabot/bundler/dotenv-rails-3.1.6 2024-12-15 23:27:32 +00:00
dependabot[bot]
9261c543dd Bump dotenv-rails from 3.1.4 to 3.1.6
Bumps [dotenv-rails](https://github.com/bkeepers/dotenv) from 3.1.4 to 3.1.6.
- [Release notes](https://github.com/bkeepers/dotenv/releases)
- [Changelog](https://github.com/bkeepers/dotenv/blob/main/Changelog.md)
- [Commits](https://github.com/bkeepers/dotenv/compare/v3.1.4...v3.1.6)

---
updated-dependencies:
- dependency-name: dotenv-rails
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-15 23:10:05 +00:00
dependabot[bot]
aaf4c2aa0e Merge pull request #3944 from Growstuff/dependabot/bundler/faraday-2.12.2 2024-12-15 23:08:55 +00:00
dependabot[bot]
8d6212ff4f Bump faraday from 2.12.1 to 2.12.2
Bumps [faraday](https://github.com/lostisland/faraday) from 2.12.1 to 2.12.2.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v2.12.1...v2.12.2)

---
updated-dependencies:
- dependency-name: faraday
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-15 22:52:28 +00:00
dependabot[bot]
27b8b891c2 Merge pull request #3945 from Growstuff/dependabot/bundler/actionpack-7.2.2.1 2024-12-15 22:51:12 +00:00
dependabot[bot]
66442d85cb Bump actionpack from 7.2.1.1 to 7.2.2.1
Bumps [actionpack](https://github.com/rails/rails) from 7.2.1.1 to 7.2.2.1.
- [Release notes](https://github.com/rails/rails/releases)
- [Changelog](https://github.com/rails/rails/blob/v8.0.0.1/actionpack/CHANGELOG.md)
- [Commits](https://github.com/rails/rails/compare/v7.2.1.1...v7.2.2.1)

---
updated-dependencies:
- dependency-name: actionpack
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-15 22:34:16 +00:00
dependabot[bot]
17faf5fd79 Merge pull request #3942 from Growstuff/dependabot/bundler/geocoder-1.8.4 2024-12-15 22:32:47 +00:00
dependabot[bot]
97f79a5fef Bump geocoder from 1.8.3 to 1.8.4
Bumps [geocoder](https://github.com/alexreisner/geocoder) from 1.8.3 to 1.8.4.
- [Changelog](https://github.com/alexreisner/geocoder/blob/master/CHANGELOG.md)
- [Commits](https://github.com/alexreisner/geocoder/compare/v1.8.3...v1.8.4)

---
updated-dependencies:
- dependency-name: geocoder
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-15 22:16:14 +00:00
dependabot[bot]
3a86473147 Merge pull request #3943 from Growstuff/dependabot/bundler/recaptcha-5.18.0 2024-12-15 22:14:56 +00:00
dependabot[bot]
5a9b76e27d Bump recaptcha from 5.17.1 to 5.18.0
Bumps [recaptcha](https://github.com/ambethia/recaptcha) from 5.17.1 to 5.18.0.
- [Changelog](https://github.com/ambethia/recaptcha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ambethia/recaptcha/compare/v5.17.1...v5.18.0)

---
updated-dependencies:
- dependency-name: recaptcha
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-15 21:57:23 +00:00
dependabot[bot]
8651eebef1 Merge pull request #3948 from Growstuff/dependabot/bundler/rubocop-1.69.2 2024-12-15 21:56:03 +00:00
dependabot[bot]
adff6cebef Bump rubocop from 1.69.1 to 1.69.2
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.69.1 to 1.69.2.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.69.1...v1.69.2)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-13 07:11:50 +00:00
dependabot[bot]
5f8589dbb0 Merge pull request #3941 from Growstuff/dependabot/bundler/rubocop-1.69.1 2024-12-04 22:05:13 +00:00
dependabot[bot]
543e8ce12f Bump rubocop from 1.69.0 to 1.69.1
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.69.0 to 1.69.1.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.69.0...v1.69.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-04 07:51:05 +00:00
dependabot[bot]
77b2822a92 Merge pull request #3938 from Growstuff/dependabot/bundler/rubocop-1.69.0 2024-12-02 23:05:38 +00:00
dependabot[bot]
23e9267cce Bump rubocop from 1.68.0 to 1.69.0
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.68.0 to 1.69.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.68.0...v1.69.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 22:46:18 +00:00
dependabot[bot]
750f9b024a Merge pull request #3930 from Growstuff/dependabot/bundler/rswag-api-2.16.0 2024-12-02 22:44:58 +00:00
dependabot[bot]
8573e58d43 Bump rswag-api from 2.15.0 to 2.16.0
Bumps [rswag-api](https://github.com/rswag/rswag) from 2.15.0 to 2.16.0.
- [Release notes](https://github.com/rswag/rswag/releases)
- [Changelog](https://github.com/rswag/rswag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rswag/rswag/compare/2.15.0...2.16.0)

---
updated-dependencies:
- dependency-name: rswag-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-02 22:26:18 +00:00
dependabot[bot]
08de72a3bd Merge pull request #3939 from Growstuff/dependabot/bundler/recaptcha-5.17.1 2024-12-02 22:24:58 +00:00
dependabot[bot]
76440b26ee Bump recaptcha from 5.17.0 to 5.17.1
Bumps [recaptcha](https://github.com/ambethia/recaptcha) from 5.17.0 to 5.17.1.
- [Changelog](https://github.com/ambethia/recaptcha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ambethia/recaptcha/compare/v5.17.0...v5.17.1)

---
updated-dependencies:
- dependency-name: recaptcha
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-27 07:51:14 +00:00
Daniel O'Connor
f6873fd696 Merge pull request #3868 from Growstuff/dev
September 2024 release
2024-11-27 08:59:37 +10:30
dependabot[bot]
20f74524de Merge pull request #3935 from Growstuff/dependabot/bundler/sidekiq-7.3.6 2024-11-26 22:24:42 +00:00
dependabot[bot]
87822d441d Bump sidekiq from 7.3.5 to 7.3.6
Bumps [sidekiq](https://github.com/sidekiq/sidekiq) from 7.3.5 to 7.3.6.
- [Changelog](https://github.com/sidekiq/sidekiq/blob/main/Changes.md)
- [Commits](https://github.com/sidekiq/sidekiq/compare/v7.3.5...v7.3.6)

---
updated-dependencies:
- dependency-name: sidekiq
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 22:06:41 +00:00
dependabot[bot]
cfe90a2e34 Merge pull request #3932 from Growstuff/dependabot/bundler/rswag-specs-2.16.0 2024-11-26 22:04:34 +00:00
dependabot[bot]
f633bd2245 Bump rswag-specs from 2.15.0 to 2.16.0
Bumps [rswag-specs](https://github.com/rswag/rswag) from 2.15.0 to 2.16.0.
- [Release notes](https://github.com/rswag/rswag/releases)
- [Changelog](https://github.com/rswag/rswag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rswag/rswag/compare/2.15.0...2.16.0)

---
updated-dependencies:
- dependency-name: rswag-specs
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 21:46:19 +00:00
dependabot[bot]
37464e0b2f Merge pull request #3931 from Growstuff/dependabot/bundler/rswag-ui-2.16.0 2024-11-26 21:44:32 +00:00
dependabot[bot]
0768c4ef5e Bump rswag-ui from 2.15.0 to 2.16.0
Bumps [rswag-ui](https://github.com/rswag/rswag) from 2.15.0 to 2.16.0.
- [Release notes](https://github.com/rswag/rswag/releases)
- [Changelog](https://github.com/rswag/rswag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rswag/rswag/compare/2.15.0...2.16.0)

---
updated-dependencies:
- dependency-name: rswag-ui
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 21:26:04 +00:00
dependabot[bot]
7ba091df64 Merge pull request #3915 from Growstuff/dependabot/bundler/factory_bot_rails-6.4.4 2024-11-26 21:24:37 +00:00
dependabot[bot]
32442a9dc3 Bump factory_bot_rails from 6.4.3 to 6.4.4
Bumps [factory_bot_rails](https://github.com/thoughtbot/factory_bot_rails) from 6.4.3 to 6.4.4.
- [Release notes](https://github.com/thoughtbot/factory_bot_rails/releases)
- [Changelog](https://github.com/thoughtbot/factory_bot_rails/blob/main/NEWS.md)
- [Commits](https://github.com/thoughtbot/factory_bot_rails/compare/v6.4.3...v6.4.4)

---
updated-dependencies:
- dependency-name: factory_bot_rails
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 21:06:30 +00:00
Daniel O'Connor
caae45ed7c Merge pull request #3937 from Growstuff/dependabot/bundler/selenium-webdriver-4.27.0
Bump selenium-webdriver from 4.26.0 to 4.27.0
2024-11-27 07:35:05 +10:30
dependabot[bot]
202c9af859 Bump selenium-webdriver from 4.26.0 to 4.27.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.26.0 to 4.27.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.26.0...selenium-4.27.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 07:29:54 +00:00
dependabot[bot]
77db35f6a3 Merge pull request #3925 from Growstuff/dependabot/bundler/rspec-rails-7.1.0 2024-11-26 07:28:34 +00:00
dependabot[bot]
0001368bab Bump rspec-rails from 7.0.1 to 7.1.0
Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 7.0.1 to 7.1.0.
- [Changelog](https://github.com/rspec/rspec-rails/blob/main/Changelog.md)
- [Commits](https://github.com/rspec/rspec-rails/compare/v7.0.1...v7.1.0)

---
updated-dependencies:
- dependency-name: rspec-rails
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-26 07:10:12 +00:00
dependabot[bot]
b513e62543 Merge pull request #3936 from Growstuff/dependabot/bundler/puma-6.5.0 2024-11-26 07:08:50 +00:00
dependabot[bot]
d0cd4a152a Bump puma from 6.4.3 to 6.5.0
Bumps [puma](https://github.com/puma/puma) from 6.4.3 to 6.5.0.
- [Release notes](https://github.com/puma/puma/releases)
- [Changelog](https://github.com/puma/puma/blob/master/History.md)
- [Commits](https://github.com/puma/puma/compare/v6.4.3...v6.5.0)

---
updated-dependencies:
- dependency-name: puma
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-25 07:33:26 +00:00
dependabot[bot]
67a1b03f55 Merge pull request #3933 from Growstuff/dependabot/bundler/faraday-2.12.1 2024-11-21 07:58:34 +00:00
dependabot[bot]
e830538716 Bump faraday from 2.12.0 to 2.12.1
Bumps [faraday](https://github.com/lostisland/faraday) from 2.12.0 to 2.12.1.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v2.12.0...v2.12.1)

---
updated-dependencies:
- dependency-name: faraday
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-21 07:39:55 +00:00
dependabot[bot]
a5e3e5a516 Merge pull request #3929 from Growstuff/dependabot/bundler/msgpack-1.7.5 2024-11-21 07:38:32 +00:00
dependabot[bot]
eb19c24194 Bump msgpack from 1.7.3 to 1.7.5
Bumps [msgpack](https://github.com/msgpack/msgpack-ruby) from 1.7.3 to 1.7.5.
- [Changelog](https://github.com/msgpack/msgpack-ruby/blob/master/ChangeLog)
- [Commits](https://github.com/msgpack/msgpack-ruby/compare/v1.7.3...v1.7.5)

---
updated-dependencies:
- dependency-name: msgpack
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-21 07:19:15 +00:00
dependabot[bot]
c98b314a26 Merge pull request #3934 from Growstuff/dependabot/bundler/pry-0.15.0 2024-11-21 07:17:56 +00:00
dependabot[bot]
185e1908c7 Bump pry from 0.14.2 to 0.15.0
Bumps [pry](https://github.com/pry/pry) from 0.14.2 to 0.15.0.
- [Release notes](https://github.com/pry/pry/releases)
- [Changelog](https://github.com/pry/pry/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pry/pry/compare/v0.14.2...v0.15.0)

---
updated-dependencies:
- dependency-name: pry
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-18 07:49:23 +00:00
dependabot[bot]
9e767572c8 Merge pull request #3918 from Growstuff/dependabot/bundler/chartkick-5.1.2 2024-11-11 09:24:27 +00:00
dependabot[bot]
a88c3f717c Bump chartkick from 5.1.1 to 5.1.2
Bumps [chartkick](https://github.com/ankane/chartkick) from 5.1.1 to 5.1.2.
- [Changelog](https://github.com/ankane/chartkick/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/chartkick/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: chartkick
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 08:36:18 +00:00
dependabot[bot]
7d7c71e36a Merge pull request #3927 from Growstuff/dependabot/bundler/bullet-8.0.0 2024-11-11 08:35:01 +00:00
dependabot[bot]
7267f1ab09 Bump bullet from 7.2.0 to 8.0.0
Bumps [bullet](https://github.com/flyerhzm/bullet) from 7.2.0 to 8.0.0.
- [Changelog](https://github.com/flyerhzm/bullet/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flyerhzm/bullet/compare/7.2.0...8.0.0)

---
updated-dependencies:
- dependency-name: bullet
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 07:44:58 +00:00
dependabot[bot]
f26b6eb39a Merge pull request #3928 from Growstuff/dependabot/bundler/axe-core-capybara-4.10.2 2024-11-11 07:43:28 +00:00
dependabot[bot]
6213751928 Bump axe-core-capybara from 4.10.1 to 4.10.2
Bumps [axe-core-capybara](https://github.com/dequelabs/axe-core-gems) from 4.10.1 to 4.10.2.
- [Release notes](https://github.com/dequelabs/axe-core-gems/releases)
- [Changelog](https://github.com/dequelabs/axe-core-gems/blob/v4.10.2/CHANGELOG.md)
- [Commits](https://github.com/dequelabs/axe-core-gems/compare/v4.10.1...v4.10.2)

---
updated-dependencies:
- dependency-name: axe-core-capybara
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 07:15:58 +00:00
dependabot[bot]
40b8e8f3cf Merge pull request #3922 from Growstuff/dependabot/bundler/oj-3.16.7 2024-11-08 10:39:18 +00:00
dependabot[bot]
a5fc95fce1 Bump oj from 3.16.6 to 3.16.7
Bumps [oj](https://github.com/ohler55/oj) from 3.16.6 to 3.16.7.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.16.6...v3.16.7)

---
updated-dependencies:
- dependency-name: oj
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-08 10:14:15 +00:00
dependabot[bot]
59b140b792 Merge pull request #3924 from Growstuff/dependabot/bundler/discard-1.4.0 2024-11-08 10:12:59 +00:00
dependabot[bot]
d35d5179c7 Bump discard from 1.3.0 to 1.4.0
Bumps [discard](https://github.com/jhawthorn/discard) from 1.3.0 to 1.4.0.
- [Changelog](https://github.com/jhawthorn/discard/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jhawthorn/discard/compare/v1.3.0...v1.4.0)

---
updated-dependencies:
- dependency-name: discard
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-07 10:30:09 +00:00
dependabot[bot]
2ea0354e4f Merge pull request #3923 from Growstuff/dependabot/bundler/sidekiq-7.3.5 2024-11-07 09:31:58 +00:00
dependabot[bot]
7fcc28a5f3 Bump sidekiq from 7.3.4 to 7.3.5
Bumps [sidekiq](https://github.com/sidekiq/sidekiq) from 7.3.4 to 7.3.5.
- [Changelog](https://github.com/sidekiq/sidekiq/blob/main/Changes.md)
- [Commits](https://github.com/sidekiq/sidekiq/commits/v7.3.5)

---
updated-dependencies:
- dependency-name: sidekiq
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-05 07:52:42 +00:00
dependabot[bot]
0e848198b4 Merge pull request #3914 from Growstuff/dependabot/bundler/loofah-2.23.1 2024-11-03 00:25:00 +00:00
dependabot[bot]
9c343b2f84 Bump loofah from 2.23.0 to 2.23.1
Bumps [loofah](https://github.com/flavorjones/loofah) from 2.23.0 to 2.23.1.
- [Release notes](https://github.com/flavorjones/loofah/releases)
- [Changelog](https://github.com/flavorjones/loofah/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flavorjones/loofah/compare/v2.23.0...v2.23.1)

---
updated-dependencies:
- dependency-name: loofah
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-01 08:12:40 +00:00
dependabot[bot]
630e9bcaf8 Merge pull request #3921 from Growstuff/dependabot/bundler/rubocop-1.68.0 2024-11-01 08:11:31 +00:00
dependabot[bot]
fd77b22c11 Bump rubocop from 1.67.0 to 1.68.0
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.67.0 to 1.68.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.67.0...v1.68.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-01 07:36:05 +00:00
dependabot[bot]
4220e6ed04 Merge pull request #3919 from Growstuff/dependabot/bundler/selenium-webdriver-4.26.0 2024-10-31 11:39:49 +00:00
dependabot[bot]
82a8cdaaba Bump selenium-webdriver from 4.25.0 to 4.26.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.25.0 to 4.26.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.25.0...selenium-4.26.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-31 07:07:40 +00:00
dependabot[bot]
8720024544 Merge pull request #3916 from Growstuff/dependabot/bundler/rubocop-rspec-3.2.0 2024-10-28 10:31:49 +00:00
dependabot[bot]
f7737ae7b6 Bump rubocop-rspec from 3.1.0 to 3.2.0
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.1.0...v3.2.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 10:14:31 +00:00
dependabot[bot]
701ba7223f Merge pull request #3913 from Growstuff/dependabot/bundler/rubocop-rails-2.27.0 2024-10-28 10:13:25 +00:00
dependabot[bot]
f4616dea47 Bump rubocop-rails from 2.26.2 to 2.27.0
Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.26.2 to 2.27.0.
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.26.2...v2.27.0)

---
updated-dependencies:
- dependency-name: rubocop-rails
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 07:37:10 +00:00
dependabot[bot]
55536b5050 Merge pull request #3904 from Growstuff/dependabot/bundler/chartkick-5.1.1 2024-10-27 22:01:28 +00:00
dependabot[bot]
4decb5d510 Bump chartkick from 5.1.0 to 5.1.1
Bumps [chartkick](https://github.com/ankane/chartkick) from 5.1.0 to 5.1.1.
- [Changelog](https://github.com/ankane/chartkick/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/chartkick/compare/v5.1.0...v5.1.1)

---
updated-dependencies:
- dependency-name: chartkick
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-27 21:43:15 +00:00
dependabot[bot]
d58a1c4483 Merge pull request #3908 from Growstuff/dependabot/bundler/sidekiq-7.3.4 2024-10-27 21:42:13 +00:00
dependabot[bot]
e134ac8763 Bump sidekiq from 7.3.2 to 7.3.4
Bumps [sidekiq](https://github.com/sidekiq/sidekiq) from 7.3.2 to 7.3.4.
- [Changelog](https://github.com/sidekiq/sidekiq/blob/main/Changes.md)
- [Commits](https://github.com/sidekiq/sidekiq/commits)

---
updated-dependencies:
- dependency-name: sidekiq
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 09:54:49 +00:00
dependabot[bot]
1525d4246d Merge pull request #3907 from Growstuff/dependabot/bundler/faker-3.5.1 2024-10-25 09:53:47 +00:00
dependabot[bot]
d706719db6 Bump faker from 3.4.2 to 3.5.1
Bumps [faker](https://github.com/faker-ruby/faker) from 3.4.2 to 3.5.1.
- [Release notes](https://github.com/faker-ruby/faker/releases)
- [Changelog](https://github.com/faker-ruby/faker/blob/main/CHANGELOG.md)
- [Commits](https://github.com/faker-ruby/faker/compare/v3.4.2...v3.5.1)

---
updated-dependencies:
- dependency-name: faker
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 09:35:06 +00:00
dependabot[bot]
e91c02792d Merge pull request #3910 from Growstuff/dependabot/bundler/database_cleaner-2.1.0 2024-10-25 09:34:04 +00:00
dependabot[bot]
c3b728f7f3 Bump database_cleaner from 2.0.2 to 2.1.0
Bumps [database_cleaner](https://github.com/DatabaseCleaner/database_cleaner) from 2.0.2 to 2.1.0.
- [Changelog](https://github.com/DatabaseCleaner/database_cleaner/blob/main/History.rdoc)
- [Commits](https://github.com/DatabaseCleaner/database_cleaner/compare/v2.0.2...v2.1.0)

---
updated-dependencies:
- dependency-name: database_cleaner
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 09:15:57 +00:00
dependabot[bot]
e2e8103795 Merge pull request #3911 from Growstuff/dependabot/bundler/loofah-2.23.0 2024-10-25 09:14:51 +00:00
dependabot[bot]
7527eb190a Bump loofah from 2.22.0 to 2.23.0
Bumps [loofah](https://github.com/flavorjones/loofah) from 2.22.0 to 2.23.0.
- [Release notes](https://github.com/flavorjones/loofah/releases)
- [Changelog](https://github.com/flavorjones/loofah/blob/main/CHANGELOG.md)
- [Commits](https://github.com/flavorjones/loofah/compare/v2.22.0...v2.23.0)

---
updated-dependencies:
- dependency-name: loofah
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 08:56:57 +00:00
dependabot[bot]
a79c71a5b7 Merge pull request #3912 from Growstuff/dependabot/bundler/pg-1.5.9 2024-10-25 08:55:50 +00:00
dependabot[bot]
75da5d24b9 Bump pg from 1.5.8 to 1.5.9
Bumps [pg](https://github.com/ged/ruby-pg) from 1.5.8 to 1.5.9.
- [Changelog](https://github.com/ged/ruby-pg/blob/master/History.md)
- [Commits](https://github.com/ged/ruby-pg/compare/v1.5.8...v1.5.9)

---
updated-dependencies:
- dependency-name: pg
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 07:37:06 +00:00
dependabot[bot]
2ec97581ad Merge pull request #3903 from Growstuff/dependabot/bundler/rubocop-1.67.0 2024-10-18 11:57:57 +00:00
dependabot[bot]
c6260ff426 Bump rubocop from 1.66.1 to 1.67.0
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.66.1 to 1.67.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.66.1...v1.67.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-18 11:39:16 +00:00
dependabot[bot]
8e7d157ff9 Merge pull request #3905 from Growstuff/dependabot/bundler/axe-core-capybara-4.10.1 2024-10-18 11:38:11 +00:00
dependabot[bot]
a0c66406cc Bump axe-core-capybara from 4.10.0 to 4.10.1
Bumps [axe-core-capybara](https://github.com/dequelabs/axe-core-gems) from 4.10.0 to 4.10.1.
- [Release notes](https://github.com/dequelabs/axe-core-gems/releases)
- [Changelog](https://github.com/dequelabs/axe-core-gems/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/dequelabs/axe-core-gems/compare/v4.10.0...v4.10.1)

---
updated-dependencies:
- dependency-name: axe-core-capybara
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-18 11:20:20 +00:00
dependabot[bot]
b9fc7f71d2 Merge pull request #3902 from Growstuff/dependabot/bundler/rails-7.2.1.1 2024-10-18 11:18:55 +00:00
dependabot[bot]
168874dfcb Bump rails from 7.2.1 to 7.2.1.1
Bumps [rails](https://github.com/rails/rails) from 7.2.1 to 7.2.1.1.
- [Release notes](https://github.com/rails/rails/releases)
- [Commits](https://github.com/rails/rails/compare/v7.2.1...v7.2.1.1)

---
updated-dependencies:
- dependency-name: rails
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-16 07:59:26 +00:00
Daniel O'Connor
c111d6e373 Merge pull request #3898 from Growstuff/CloCkWeRX-patch-2
Update _form.html.haml to make seeds tradeable-to required
2024-10-14 00:41:12 +10:30
Daniel O'Connor
8224fe2aea Update _form.html.haml 2024-10-14 00:14:26 +10:30
Daniel O'Connor
58780ec199 Swap harvest to html5 date field (#3894)
* Update gardens to have a non 0 area

* Spec no longer possible through frontend

* Fix spec

* Swap harvest to html5 date field

* Fix spec
2024-10-14 00:09:30 +10:30
Daniel O'Connor
196ca1ba49 Merge pull request #3896 from Growstuff/CloCkWeRX-patch-2
Update _form.html.haml
2024-10-13 23:53:28 +10:30
Daniel O'Connor
443be95915 Merge pull request #3895 from Growstuff/CloCkWeRX-patch-5
Swap to HTML5 date field
2024-10-13 23:49:50 +10:30
Daniel O'Connor
9167c334f9 Merge pull request #3890 from Growstuff/CloCkWeRX-patch-3
Swap activities to datepicker
2024-10-13 23:36:12 +10:30
Daniel O'Connor
66f3a712ea Update _form.html.haml 2024-10-13 23:32:19 +10:30
Daniel O'Connor
26691419dc Merge pull request #3893 from Growstuff/CloCkWeRX-patch-2
Update _form.html.haml to mark required
2024-10-13 23:29:58 +10:30
Daniel O'Connor
8459bc2fdf Swap to HTML5 date field 2024-10-13 23:29:17 +10:30
Daniel O'Connor
2fe3c8fc73 Merge pull request #3892 from Growstuff/CloCkWeRX-patch-5
Update _form.html.haml to require a min of 1 seed
2024-10-13 23:22:13 +10:30
Daniel O'Connor
2b72e8f2da Merge pull request #3891 from Growstuff/CloCkWeRX-patch-4
Update _form.html.haml to require a min of 1 when planting
2024-10-13 23:21:11 +10:30
Daniel O'Connor
a2faf945a2 Update _form.html.haml to mark required 2024-10-13 23:08:16 +10:30
Daniel O'Connor
d1871106fa Merge pull request #3889 from Growstuff/CloCkWeRX-patch-2
Update _form.html.haml to mark dropdowns required
2024-10-13 23:04:21 +10:30
Daniel O'Connor
9a1b62fe52 Update _form.html.haml 2024-10-13 23:02:36 +10:30
Daniel O'Connor
d61222d4cc Update _form.html.haml 2024-10-13 23:01:10 +10:30
Daniel O'Connor
f8e1d75e83 Swap activities to datepicker 2024-10-13 22:57:26 +10:30
Daniel O'Connor
925bb582d3 Update gardens to have a non 0 area (#3885)
* Update gardens to have a non 0 area

* Spec no longer possible through frontend

* Fix spec
2024-10-13 22:53:51 +10:30
Daniel O'Connor
7acef18bc5 Merge pull request #3888 from Growstuff/required-help
Remove required text UI element
2024-10-13 22:47:21 +10:30
Daniel O'Connor
44857c3de7 Update _form.html.haml 2024-10-13 22:43:51 +10:30
Daniel O'Connor
825b0347af Merge pull request #3887 from Growstuff/CloCkWeRX-patch-2
Update _form.html.haml
2024-10-13 22:38:14 +10:30
Daniel O'Connor
001f370283 Merge branch 'dev' into required-help 2024-10-13 22:28:33 +10:30
Daniel O'Connor
a7a5b6ef17 Remove required text UI element 2024-10-13 11:56:56 +00:00
Daniel O'Connor
b3ecfcabf4 Merge pull request #3886 from Growstuff/CloCkWeRX-patch-5
Update seeds to have a min day range
2024-10-13 22:21:13 +10:30
Daniel O'Connor
c05ea9e651 Update _form.html.haml 2024-10-13 22:15:52 +10:30
Daniel O'Connor
d2cf94103a Merge pull request #3884 from Growstuff/CloCkWeRX-patch-3
Update auto_suggest_helper.rb to support required
2024-10-13 22:11:23 +10:30
Daniel O'Connor
867c3dc097 Merge pull request #3883 from Growstuff/CloCkWeRX-patch-2
Update _plantings.scss
2024-10-13 22:10:44 +10:30
Daniel O'Connor
6f5a241970 Update _form.html.haml 2024-10-13 21:56:01 +10:30
Daniel O'Connor
73e73e6c14 Update _form.html.haml 2024-10-13 21:54:49 +10:30
Daniel O'Connor
a8cd6ad10e Update auto_suggest_helper.rb to support required 2024-10-13 21:51:04 +10:30
Daniel O'Connor
1132198931 Update _plantings.scss 2024-10-13 21:48:13 +10:30
Daniel O'Connor
2484bd39ed Render where a planting is in card view (#3882)
* Render where a planting is in card view

* Update app/assets/stylesheets/_plantings.scss
2024-10-13 14:25:46 +10:30
Daniel O'Connor
92dee732a1 Merge pull request #3880 from Growstuff/CloCkWeRX-patch-2
Default a new activity as being done today
2024-10-13 13:16:55 +10:30
dependabot[bot]
53949fcf34 Merge pull request #3879 from Growstuff/dependabot/bundler/active_median-0.5.0 2024-10-13 02:33:20 +00:00
Daniel O'Connor
681f3780ad Default a new activity as being done today 2024-10-13 12:41:59 +10:30
dependabot[bot]
15537139e4 Bump active_median from 0.4.1 to 0.5.0
Bumps [active_median](https://github.com/ankane/active_median) from 0.4.1 to 0.5.0.
- [Changelog](https://github.com/ankane/active_median/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/active_median/compare/v0.4.1...v0.5.0)

---
updated-dependencies:
- dependency-name: active_median
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-13 02:11:25 +00:00
dependabot[bot]
d1ee8c816d Merge pull request #3878 from Growstuff/dependabot/bundler/terser-1.2.4 2024-10-13 02:10:31 +00:00
dependabot[bot]
413b5969d6 Bump terser from 1.2.3 to 1.2.4
Bumps [terser](https://github.com/ahorek/terser-ruby) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/ahorek/terser-ruby/releases)
- [Changelog](https://github.com/ahorek/terser-ruby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ahorek/terser-ruby/compare/1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: terser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-08 07:45:51 +00:00
dependabot[bot]
0335a9fb56 Merge pull request #3875 from Growstuff/dependabot/bundler/rswag-api-2.15.0 2024-10-07 11:33:56 +00:00
dependabot[bot]
3d9d89726e Bump rswag-api from 2.14.0 to 2.15.0
Bumps [rswag-api](https://github.com/rswag/rswag) from 2.14.0 to 2.15.0.
- [Release notes](https://github.com/rswag/rswag/releases)
- [Changelog](https://github.com/rswag/rswag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rswag/rswag/compare/2.14.0...2.15.0)

---
updated-dependencies:
- dependency-name: rswag-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 11:15:07 +00:00
dependabot[bot]
934074844e Merge pull request #3874 from Growstuff/dependabot/bundler/rswag-ui-2.15.0 2024-10-07 11:13:53 +00:00
dependabot[bot]
e6069168b9 Bump rswag-ui from 2.14.0 to 2.15.0
Bumps [rswag-ui](https://github.com/rswag/rswag) from 2.14.0 to 2.15.0.
- [Release notes](https://github.com/rswag/rswag/releases)
- [Changelog](https://github.com/rswag/rswag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rswag/rswag/compare/2.14.0...2.15.0)

---
updated-dependencies:
- dependency-name: rswag-ui
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 10:55:47 +00:00
dependabot[bot]
292ca47f20 Merge pull request #3876 from Growstuff/dependabot/bundler/msgpack-1.7.3 2024-10-07 10:54:42 +00:00
dependabot[bot]
28fe846645 Bump msgpack from 1.7.2 to 1.7.3
Bumps [msgpack](https://github.com/msgpack/msgpack-ruby) from 1.7.2 to 1.7.3.
- [Changelog](https://github.com/msgpack/msgpack-ruby/blob/master/ChangeLog)
- [Commits](https://github.com/msgpack/msgpack-ruby/compare/v1.7.2...v1.7.3)

---
updated-dependencies:
- dependency-name: msgpack
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 10:36:51 +00:00
dependabot[bot]
e08f64b216 Merge pull request #3877 from Growstuff/dependabot/bundler/rswag-specs-2.15.0 2024-10-07 10:35:47 +00:00
dependabot[bot]
ac22af4718 Bump rswag-specs from 2.14.0 to 2.15.0
Bumps [rswag-specs](https://github.com/rswag/rswag) from 2.14.0 to 2.15.0.
- [Release notes](https://github.com/rswag/rswag/releases)
- [Changelog](https://github.com/rswag/rswag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rswag/rswag/compare/2.14.0...2.15.0)

---
updated-dependencies:
- dependency-name: rswag-specs
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-07 07:11:41 +00:00
dependabot[bot]
fb992ef13c Merge pull request #3872 from Growstuff/dependabot/bundler/rubocop-rspec-3.1.0 2024-10-03 11:01:53 +00:00
dependabot[bot]
2c8d0c2d2f Bump rubocop-rspec from 3.0.5 to 3.1.0
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 3.0.5 to 3.1.0.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.0.5...v3.1.0)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-03 09:54:01 +00:00
dependabot[bot]
14148aef55 Merge pull request #3873 from Growstuff/dependabot/bundler/rspec-activemodel-mocks-1.2.1 2024-10-03 09:52:59 +00:00
dependabot[bot]
0bfa4e4c85 Bump rspec-activemodel-mocks from 1.2.0 to 1.2.1
Bumps [rspec-activemodel-mocks](https://github.com/rspec/rspec-activemodel-mocks) from 1.2.0 to 1.2.1.
- [Changelog](https://github.com/rspec/rspec-activemodel-mocks/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rspec/rspec-activemodel-mocks/compare/v1.2.0...v1.2.1)

---
updated-dependencies:
- dependency-name: rspec-activemodel-mocks
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-03 07:12:36 +00:00
Daniel O'Connor
b62c6909b9 Merge branch 'mainline' into dev 2024-09-30 08:41:20 +09:30
Daniel O'Connor
1c97ba1495 Garden collaboration (small part of community gardens) (#3862)
* Add collaboration model

* Permissions and garden show

* List by owner, or where I am a collaborator

* Add index

* Add permissions

* Typo

* Typo

* Add route

* Update schema

* Update schema

* Add CRUD

* Add CRUD

* Add CRUD

* Factory

* Add validations

* Rubocop

* Rubocop

* Rubocop

* Unique index

* Fix

* Make CI more fine grained for faster feedback

* Swap order

* Fix path, fail-fast

* Fix spec

* Remove 'significant drop in coverage' as not everything runs in one giant run

* Fix tests?
2024-09-29 18:28:52 +09:30
Daniel O'Connor
c063a33e8b Garden show and edit: encourage descriptions, add more calls to action (#3846)
* Better edit links

* Prompt for more detail

* Better action links

* Better action links

* Update show.html.haml

* Apply suggestions from code review

* Apply suggestions from code review
2024-09-29 18:28:42 +09:30
Daniel O'Connor
69876813c2 Merge pull request #3845 from Growstuff/only-show-active
Avoid showing plantings which are finished
2024-09-29 17:43:32 +09:30
dependabot[bot]
46b33605aa Merge pull request #3865 from Growstuff/dependabot/bundler/haml_lint-0.59.0 2024-09-29 07:27:25 +00:00
Daniel O'Connor
6507c33729 Merge pull request #3833 from Growstuff/dev
August 2024 release
2024-09-29 16:41:56 +09:30
dependabot[bot]
5b9a59e2cd Bump haml_lint from 0.58.0 to 0.59.0
Bumps [haml_lint](https://github.com/sds/haml-lint) from 0.58.0 to 0.59.0.
- [Release notes](https://github.com/sds/haml-lint/releases)
- [Changelog](https://github.com/sds/haml-lint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sds/haml-lint/compare/v0.58.0...v0.59.0)

---
updated-dependencies:
- dependency-name: haml_lint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-29 07:08:40 +00:00
Daniel O'Connor
092920b5f8 Update dependabot.yml
Apparently, https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem is wrong
2024-09-29 16:37:25 +09:30
Daniel O'Connor
b3c0df3bb8 Merge pull request #3864 from Growstuff/CloCkWeRX-patch-1
Update dependabot.yml
2024-09-29 16:36:15 +09:30
Daniel O'Connor
1113fc7c97 Update dependabot.yml 2024-09-29 16:36:02 +09:30
Daniel O'Connor
5e8c1f92d1 Delete .github/workflows/brakeman-analysis.yml 2024-09-29 16:32:34 +09:30
dependabot[bot]
cd0e692c59 Merge pull request #3863 from Growstuff/dependabot/bundler/webrick-1.8.2 2024-09-29 05:30:42 +00:00
dependabot[bot]
a07c012051 Bump webrick from 1.8.1 to 1.8.2
Bumps [webrick](https://github.com/ruby/webrick) from 1.8.1 to 1.8.2.
- [Release notes](https://github.com/ruby/webrick/releases)
- [Commits](https://github.com/ruby/webrick/compare/v1.8.1...v1.8.2)

---
updated-dependencies:
- dependency-name: webrick
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-29 05:11:03 +00:00
dependabot[bot]
aec87270a7 Merge pull request #3859 from Growstuff/dependabot/bundler/selenium-webdriver-4.25.0 2024-09-23 22:16:12 +00:00
dependabot[bot]
e634fe76ea Bump selenium-webdriver from 4.24.0 to 4.25.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.24.0 to 4.25.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.24.0...selenium-4.25.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 21:59:03 +00:00
dependabot[bot]
3a5afb10af Merge pull request #3860 from Growstuff/dependabot/bundler/rubocop-rails-2.26.2 2024-09-23 21:57:49 +00:00
dependabot[bot]
d514109bd6 Bump rubocop-rails from 2.26.1 to 2.26.2
Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.26.1 to 2.26.2.
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.26.1...v2.26.2)

---
updated-dependencies:
- dependency-name: rubocop-rails
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 09:01:36 +00:00
dependabot[bot]
953981f51c Merge pull request #3858 from Growstuff/dependabot/bundler/icalendar-2.10.3 2024-09-23 09:00:29 +00:00
dependabot[bot]
524b741933 Bump icalendar from 2.10.2 to 2.10.3
Bumps [icalendar](https://github.com/icalendar/icalendar) from 2.10.2 to 2.10.3.
- [Changelog](https://github.com/icalendar/icalendar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/icalendar/icalendar/compare/v2.10.2...v2.10.3)

---
updated-dependencies:
- dependency-name: icalendar
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 07:35:49 +00:00
Daniel O'Connor
497cde22ee Merge branch 'mainline' into dev 2024-09-20 18:29:31 +09:30
dependabot[bot]
075b3d8eec Merge pull request #3857 from Growstuff/dependabot/bundler/sprockets-3.7.5 2024-09-20 08:56:44 +00:00
dependabot[bot]
605605c8e3 Bump sprockets from 3.7.4 to 3.7.5
Bumps [sprockets](https://github.com/rails/sprockets) from 3.7.4 to 3.7.5.
- [Release notes](https://github.com/rails/sprockets/releases)
- [Changelog](https://github.com/rails/sprockets/blob/v3.7.5/CHANGELOG.md)
- [Commits](https://github.com/rails/sprockets/compare/v3.7.4...v3.7.5)

---
updated-dependencies:
- dependency-name: sprockets
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-20 07:31:42 +00:00
dependabot[bot]
8a260ca171 Merge pull request #3854 from Growstuff/dependabot/bundler/dotenv-rails-3.1.4 2024-09-19 12:45:51 +00:00
dependabot[bot]
373794214b Bump dotenv-rails from 3.1.2 to 3.1.4
Bumps [dotenv-rails](https://github.com/bkeepers/dotenv) from 3.1.2 to 3.1.4.
- [Release notes](https://github.com/bkeepers/dotenv/releases)
- [Changelog](https://github.com/bkeepers/dotenv/blob/main/Changelog.md)
- [Commits](https://github.com/bkeepers/dotenv/compare/v3.1.2...v3.1.4)

---
updated-dependencies:
- dependency-name: dotenv-rails
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-19 09:29:15 +00:00
dependabot[bot]
702787b484 Merge pull request #3855 from Growstuff/dependabot/bundler/faraday-2.12.0 2024-09-19 09:28:11 +00:00
dependabot[bot]
d9234e847b Bump faraday from 2.11.0 to 2.12.0
Bumps [faraday](https://github.com/lostisland/faraday) from 2.11.0 to 2.12.0.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v2.11.0...v2.12.0)

---
updated-dependencies:
- dependency-name: faraday
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-19 09:08:39 +00:00
dependabot[bot]
a56645a4b6 Merge pull request #3856 from Growstuff/dependabot/bundler/puma-6.4.3 2024-09-19 09:07:20 +00:00
dependabot[bot]
79d65c15c6 Bump puma from 6.4.2 to 6.4.3
Bumps [puma](https://github.com/puma/puma) from 6.4.2 to 6.4.3.
- [Release notes](https://github.com/puma/puma/releases)
- [Changelog](https://github.com/puma/puma/blob/master/History.md)
- [Commits](https://github.com/puma/puma/compare/v6.4.2...v6.4.3)

---
updated-dependencies:
- dependency-name: puma
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-19 07:18:20 +00:00
dependabot[bot]
5356185eb9 Merge pull request #3853 from Growstuff/dependabot/bundler/scout_apm-5.4.0 2024-09-11 11:43:41 +00:00
dependabot[bot]
05a89911f4 Bump scout_apm from 5.3.8 to 5.4.0
Bumps [scout_apm](https://github.com/scoutapp/scout_apm_ruby) from 5.3.8 to 5.4.0.
- [Changelog](https://github.com/scoutapp/scout_apm_ruby/blob/master/CHANGELOG.markdown)
- [Commits](https://github.com/scoutapp/scout_apm_ruby/compare/v5.3.8...v5.4.0)

---
updated-dependencies:
- dependency-name: scout_apm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-11 07:17:13 +00:00
dependabot[bot]
8348a8f544 Merge pull request #3851 from Growstuff/dependabot/bundler/oj-3.16.6 2024-09-10 09:24:44 +00:00
dependabot[bot]
4adcaabf57 Bump oj from 3.16.5 to 3.16.6
Bumps [oj](https://github.com/ohler55/oj) from 3.16.5 to 3.16.6.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.16.5...v3.16.6)

---
updated-dependencies:
- dependency-name: oj
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-10 08:43:47 +00:00
Daniel O'Connor
ff07054b01 Merge pull request #3852 from Growstuff/dependabot/bundler/sprockets-3.7.4
Bump sprockets from 3.7.3 to 3.7.4
2024-09-10 18:12:43 +09:30
dependabot[bot]
37aa88790c Bump sprockets from 3.7.3 to 3.7.4
Bumps [sprockets](https://github.com/rails/sprockets) from 3.7.3 to 3.7.4.
- [Release notes](https://github.com/rails/sprockets/releases)
- [Changelog](https://github.com/rails/sprockets/blob/v3.7.4/CHANGELOG.md)
- [Commits](https://github.com/rails/sprockets/compare/v3.7.3...v3.7.4)

---
updated-dependencies:
- dependency-name: sprockets
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-10 08:01:37 +00:00
dependabot[bot]
1de98fa0ca Merge pull request #3850 from Growstuff/dependabot/bundler/pg-1.5.8 2024-09-09 09:41:23 +00:00
dependabot[bot]
15dc687134 Bump pg from 1.5.7 to 1.5.8
Bumps [pg](https://github.com/ged/ruby-pg) from 1.5.7 to 1.5.8.
- [Changelog](https://github.com/ged/ruby-pg/blob/master/History.md)
- [Commits](https://github.com/ged/ruby-pg/compare/v1.5.7...v1.5.8)

---
updated-dependencies:
- dependency-name: pg
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 08:35:14 +00:00
dependabot[bot]
7e40eb1053 Merge pull request #3848 from Growstuff/dependabot/bundler/rubocop-rspec-3.0.5 2024-09-09 08:34:06 +00:00
dependabot[bot]
8c3f6cb7b3 Bump rubocop-rspec from 3.0.4 to 3.0.5
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.0.4...v3.0.5)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 08:14:43 +00:00
dependabot[bot]
3914f28e8e Merge pull request #3849 from Growstuff/dependabot/bundler/rubocop-rails-2.26.1 2024-09-09 08:12:36 +00:00
dependabot[bot]
84edfd2903 Bump rubocop-rails from 2.26.0 to 2.26.1
Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.26.0 to 2.26.1.
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.26.0...v2.26.1)

---
updated-dependencies:
- dependency-name: rubocop-rails
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-09 07:48:35 +00:00
Daniel O'Connor
79ef7347ad Avoid showing plantings which are finished 2024-09-08 02:26:11 +00:00
Daniel O'Connor
3ad059d593 Merge pull request #3837 from Growstuff/CloCkWeRX-patch-1
Update overrides.scss
2024-09-08 11:48:48 +09:30
Daniel O'Connor
2f0e3adad9 Merge branch 'dev' into CloCkWeRX-patch-1 2024-09-08 11:48:34 +09:30
dependabot[bot]
14b282fb93 Merge pull request #3842 from Growstuff/dependabot/bundler/rubocop-1.66.1 2024-09-05 10:21:45 +00:00
dependabot[bot]
9a23b3a6bf Bump rubocop from 1.66.0 to 1.66.1
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.66.0 to 1.66.1.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.66.0...v1.66.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-05 10:05:02 +00:00
dependabot[bot]
8384381eea Merge pull request #3841 from Growstuff/dependabot/bundler/rspec-rails-7.0.1 2024-09-05 10:03:19 +00:00
dependabot[bot]
7c329a4427 Bump rspec-rails from 7.0.0 to 7.0.1
Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 7.0.0 to 7.0.1.
- [Changelog](https://github.com/rspec/rspec-rails/blob/main/Changelog.md)
- [Commits](https://github.com/rspec/rspec-rails/compare/v7.0.0...v7.0.1)

---
updated-dependencies:
- dependency-name: rspec-rails
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-05 09:45:00 +00:00
dependabot[bot]
9d9926af5c Merge pull request #3843 from Growstuff/dependabot/bundler/sidekiq-7.3.2 2024-09-05 09:43:56 +00:00
dependabot[bot]
049dd67968 Bump sidekiq from 7.3.1 to 7.3.2
Bumps [sidekiq](https://github.com/sidekiq/sidekiq) from 7.3.1 to 7.3.2.
- [Changelog](https://github.com/sidekiq/sidekiq/blob/main/Changes.md)
- [Commits](https://github.com/sidekiq/sidekiq/compare/v7.3.1...v7.3.2)

---
updated-dependencies:
- dependency-name: sidekiq
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-05 08:12:31 +00:00
dependabot[bot]
2767384589 Merge pull request #3838 from Growstuff/dependabot/bundler/rubocop-1.66.0 2024-09-03 09:43:10 +00:00
dependabot[bot]
81ca9dc964 Bump rubocop from 1.65.1 to 1.66.0
Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.65.1 to 1.66.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.65.1...v1.66.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-03 09:24:58 +00:00
dependabot[bot]
2f7bd378d4 Merge pull request #3840 from Growstuff/dependabot/bundler/ruby-units-4.1.0 2024-09-03 09:23:54 +00:00
dependabot[bot]
4473059cb1 Bump ruby-units from 4.0.3 to 4.1.0
Bumps [ruby-units](https://github.com/olbrich/ruby-units) from 4.0.3 to 4.1.0.
- [Release notes](https://github.com/olbrich/ruby-units/releases)
- [Changelog](https://github.com/olbrich/ruby-units/blob/master/CHANGELOG.txt)
- [Commits](https://github.com/olbrich/ruby-units/compare/v4.0.3...v4.1.0)

---
updated-dependencies:
- dependency-name: ruby-units
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-03 09:06:19 +00:00
dependabot[bot]
20a3153dcc Merge pull request #3835 from Growstuff/dependabot/bundler/selenium-webdriver-4.24.0 2024-09-03 09:05:17 +00:00
dependabot[bot]
2058f3d739 Bump selenium-webdriver from 4.23.0 to 4.24.0
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.23.0 to 4.24.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.23.0...selenium-4.24.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-03 08:47:49 +00:00
dependabot[bot]
162fb57ed6 Merge pull request #3839 from Growstuff/dependabot/bundler/rspec-rails-7.0.0 2024-09-03 08:46:45 +00:00
dependabot[bot]
3e6953093e Bump rspec-rails from 6.1.4 to 7.0.0
Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 6.1.4 to 7.0.0.
- [Changelog](https://github.com/rspec/rspec-rails/blob/main/Changelog.md)
- [Commits](https://github.com/rspec/rspec-rails/compare/v6.1.4...v7.0.0)

---
updated-dependencies:
- dependency-name: rspec-rails
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-03 07:10:05 +00:00
Daniel O'Connor
a5c5de414e Update overrides.scss 2024-08-31 19:06:45 +09:30
Daniel O'Connor
5c206896af Rails 7.2.1 (#3789)
* Rails 7.2.0.beta3

* Rails 7.2.1

* Bump
2024-08-31 17:43:35 +09:30
Daniel O'Connor
afdb9720b7 Merge pull request #3834 from Growstuff/dependabot/bundler/faraday-2.11.0
Bump faraday from 2.10.1 to 2.11.0
2024-08-27 20:33:42 +09:30
dependabot[bot]
7d203de54d Bump faraday from 2.10.1 to 2.11.0
Bumps [faraday](https://github.com/lostisland/faraday) from 2.10.1 to 2.11.0.
- [Release notes](https://github.com/lostisland/faraday/releases)
- [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lostisland/faraday/compare/v2.10.1...v2.11.0)

---
updated-dependencies:
- dependency-name: faraday
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-27 07:19:17 +00:00
dependabot[bot]
5f26d86267 Merge pull request #3832 from Growstuff/dependabot/npm_and_yarn/micromatch-4.0.8 2024-08-26 11:00:00 +00:00
dependabot[bot]
0046953f73 Bump micromatch from 4.0.5 to 4.0.8
Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.5 to 4.0.8.
- [Release notes](https://github.com/micromatch/micromatch/releases)
- [Changelog](https://github.com/micromatch/micromatch/blob/4.0.8/CHANGELOG.md)
- [Commits](https://github.com/micromatch/micromatch/compare/4.0.5...4.0.8)

---
updated-dependencies:
- dependency-name: micromatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-26 10:42:18 +00:00
dependabot[bot]
db406fa6c7 Merge pull request #3831 from Growstuff/dependabot/bundler/rubocop-rails-2.26.0 2024-08-26 10:41:44 +00:00
dependabot[bot]
cc2b723cd4 Bump rubocop-rails from 2.25.1 to 2.26.0
Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.25.1 to 2.26.0.
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.25.1...v2.26.0)

---
updated-dependencies:
- dependency-name: rubocop-rails
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-26 07:17:09 +00:00
dependabot[bot]
ed8d62110e Merge pull request #3830 from Growstuff/dependabot/bundler/rails-7.1.4 2024-08-23 09:06:09 +00:00
dependabot[bot]
1d07fd8b6e Bump rails from 7.1.3.4 to 7.1.4
Bumps [rails](https://github.com/rails/rails) from 7.1.3.4 to 7.1.4.
- [Release notes](https://github.com/rails/rails/releases)
- [Commits](https://github.com/rails/rails/compare/v7.1.3.4...v7.1.4)

---
updated-dependencies:
- dependency-name: rails
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-23 07:29:08 +00:00
dependabot[bot]
a0b73ca9d5 Merge pull request #3826 from Growstuff/dependabot/bundler/query_diet-0.7.2 2024-08-22 23:38:24 +00:00
dependabot[bot]
64efea0a8a Bump query_diet from 0.7.1 to 0.7.2
Bumps [query_diet](https://github.com/makandra/query_diet) from 0.7.1 to 0.7.2.
- [Changelog](https://github.com/makandra/query_diet/blob/master/CHANGELOG.md)
- [Commits](https://github.com/makandra/query_diet/compare/v0.7.1...v0.7.2)

---
updated-dependencies:
- dependency-name: query_diet
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-22 23:22:24 +00:00
dependabot[bot]
08ce307c3c Merge pull request #3824 from Growstuff/dependabot/bundler/chartkick-5.1.0 2024-08-22 23:21:10 +00:00
dependabot[bot]
b10054caeb Bump chartkick from 5.0.7 to 5.1.0
Bumps [chartkick](https://github.com/ankane/chartkick) from 5.0.7 to 5.1.0.
- [Changelog](https://github.com/ankane/chartkick/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ankane/chartkick/compare/v5.0.7...v5.1.0)

---
updated-dependencies:
- dependency-name: chartkick
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-22 22:33:09 +00:00
dependabot[bot]
e2c4facfe3 Merge pull request #3822 from Growstuff/dependabot/bundler/sidekiq-7.3.1 2024-08-22 22:31:55 +00:00
dependabot[bot]
3469ebf44e Bump sidekiq from 7.3.0 to 7.3.1
Bumps [sidekiq](https://github.com/sidekiq/sidekiq) from 7.3.0 to 7.3.1.
- [Changelog](https://github.com/sidekiq/sidekiq/blob/main/Changes.md)
- [Commits](https://github.com/sidekiq/sidekiq/compare/v7.3.0...v7.3.1)

---
updated-dependencies:
- dependency-name: sidekiq
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-22 22:16:19 +00:00
dependabot[bot]
9953921941 Merge pull request #3825 from Growstuff/dependabot/bundler/vcr-6.3.1 2024-08-22 22:15:08 +00:00
dependabot[bot]
159f4558c3 Bump vcr from 6.2.0 to 6.3.1
Bumps [vcr](https://github.com/vcr/vcr) from 6.2.0 to 6.3.1.
- [Release notes](https://github.com/vcr/vcr/releases)
- [Changelog](https://github.com/vcr/vcr/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vcr/vcr/compare/v6.2.0...v6.3.1)

---
updated-dependencies:
- dependency-name: vcr
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-22 21:56:56 +00:00
Daniel O'Connor
c6522ddc20 Merge pull request #3829 from Growstuff/dependabot/bundler/rexml-3.3.6
Bump rexml from 3.3.4 to 3.3.6
2024-08-23 07:25:41 +09:30
dependabot[bot]
9b44c649e7 Bump rexml from 3.3.4 to 3.3.6
Bumps [rexml](https://github.com/ruby/rexml) from 3.3.4 to 3.3.6.
- [Release notes](https://github.com/ruby/rexml/releases)
- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md)
- [Commits](https://github.com/ruby/rexml/compare/v3.3.4...v3.3.6)

---
updated-dependencies:
- dependency-name: rexml
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-22 20:58:16 +00:00
Daniel O'Connor
00184c183d Merge pull request #3827 from Growstuff/dependabot/bundler/axe-core-rspec-4.10.0
Bump axe-core-rspec from 4.9.1 to 4.10.0
2024-08-22 17:27:10 +09:30
dependabot[bot]
f47765642b Bump axe-core-rspec from 4.9.1 to 4.10.0
Bumps [axe-core-rspec](https://github.com/dequelabs/axe-core-gems) from 4.9.1 to 4.10.0.
- [Release notes](https://github.com/dequelabs/axe-core-gems/releases)
- [Changelog](https://github.com/dequelabs/axe-core-gems/blob/v4.10.0/CHANGELOG.md)
- [Commits](https://github.com/dequelabs/axe-core-gems/compare/v4.9.1...v4.10.0)

---
updated-dependencies:
- dependency-name: axe-core-rspec
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-22 07:36:43 +00:00
dependabot[bot]
a6e264eea9 Merge pull request #3821 from Growstuff/dependabot/bundler/rspec-rails-6.1.4 2024-08-16 08:35:31 +00:00
dependabot[bot]
4c8cc09fd5 Bump rspec-rails from 6.1.3 to 6.1.4
Bumps [rspec-rails](https://github.com/rspec/rspec-rails) from 6.1.3 to 6.1.4.
- [Changelog](https://github.com/rspec/rspec-rails/blob/main/Changelog.md)
- [Commits](https://github.com/rspec/rspec-rails/compare/v6.1.3...v6.1.4)

---
updated-dependencies:
- dependency-name: rspec-rails
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-16 07:03:39 +00:00
dependabot[bot]
fd815e843c Merge pull request #3818 from Growstuff/dependabot/bundler/rswag-api-2.14.0 2024-08-14 08:11:21 +00:00
dependabot[bot]
dae4355487 Bump rswag-api from 2.13.0 to 2.14.0
Bumps [rswag-api](https://github.com/rswag/rswag) from 2.13.0 to 2.14.0.
- [Release notes](https://github.com/rswag/rswag/releases)
- [Changelog](https://github.com/rswag/rswag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rswag/rswag/compare/2.13.0...2.14.0)

---
updated-dependencies:
- dependency-name: rswag-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-14 07:55:12 +00:00
dependabot[bot]
5ca687c298 Merge pull request #3819 from Growstuff/dependabot/bundler/rswag-ui-2.14.0 2024-08-14 07:54:06 +00:00
dependabot[bot]
6452e67cd7 Bump rswag-ui from 2.13.0 to 2.14.0
Bumps [rswag-ui](https://github.com/rswag/rswag) from 2.13.0 to 2.14.0.
- [Release notes](https://github.com/rswag/rswag/releases)
- [Changelog](https://github.com/rswag/rswag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rswag/rswag/compare/2.13.0...2.14.0)

---
updated-dependencies:
- dependency-name: rswag-ui
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-14 07:39:01 +00:00
Daniel O'Connor
6ee4f91418 Merge pull request #3820 from Growstuff/dependabot/bundler/rswag-specs-2.14.0
Bump rswag-specs from 2.13.0 to 2.14.0
2024-08-14 17:07:56 +09:30
dependabot[bot]
c24b8b3470 Bump rswag-specs from 2.13.0 to 2.14.0
Bumps [rswag-specs](https://github.com/rswag/rswag) from 2.13.0 to 2.14.0.
- [Release notes](https://github.com/rswag/rswag/releases)
- [Changelog](https://github.com/rswag/rswag/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rswag/rswag/compare/2.13.0...2.14.0)

---
updated-dependencies:
- dependency-name: rswag-specs
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-14 07:18:41 +00:00
dependabot[bot]
44a56a25c7 Merge pull request #3817 from Growstuff/dependabot/bundler/oj-3.16.5 2024-08-08 08:14:02 +00:00
dependabot[bot]
ba3e3afe52 Bump oj from 3.16.4 to 3.16.5
Bumps [oj](https://github.com/ohler55/oj) from 3.16.4 to 3.16.5.
- [Release notes](https://github.com/ohler55/oj/releases)
- [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/ohler55/oj/compare/v3.16.4...v3.16.5)

---
updated-dependencies:
- dependency-name: oj
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-08 07:57:06 +00:00
dependabot[bot]
cf1c67f266 Merge pull request #3816 from Growstuff/dependabot/bundler/rubocop-rspec-3.0.4 2024-08-06 09:03:13 +00:00
dependabot[bot]
a92f8a358b Bump rubocop-rspec from 3.0.3 to 3.0.4
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from 3.0.3 to 3.0.4.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
- [Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.0.3...v3.0.4)

---
updated-dependencies:
- dependency-name: rubocop-rspec
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-06 07:57:16 +00:00
Daniel O'Connor
0bb3ac952c Merge pull request #3787 from Growstuff/dev
July 2024 Release
2024-08-02 08:18:00 +09:30
Daniel O'Connor
25e98f1d7f Merge pull request #3771 from Growstuff/dev
June 2024 release (a few days late)
2024-07-02 18:08:08 +09:30
90 changed files with 3421 additions and 624 deletions

View File

@@ -13,3 +13,4 @@ updates:
interval: daily
time: "07:00"
open-pull-requests-limit: 10

View File

@@ -1,40 +0,0 @@
# This workflow integrates Brakeman with GitHub's Code Scanning feature
# Brakeman is a static analysis security vulnerability scanner for Ruby on Rails applications
name: Brakeman Scan
# This section configures the trigger for the workflow. Feel free to customize depending on your convention
on:
pull_request:
branches: [ dev ]
jobs:
brakeman-scan:
name: Brakeman Scan
runs-on: ubuntu-latest
steps:
# Checkout the repository to the GitHub Actions runner
- name: Checkout
uses: actions/checkout@v4
# Customize the ruby version depending on your needs
- name: Setup Ruby
uses: ruby/setup-ruby@v1
- name: Setup Brakeman
env:
BRAKEMAN_VERSION: '5.1.1' # SARIF support is provided in Brakeman version 4.10+
run: |
gem install brakeman --version $BRAKEMAN_VERSION
# Execute Brakeman CLI and generate a SARIF output with the security issues identified during the analysis
- name: Scan
continue-on-error: true
run: |
brakeman -f sarif -o output.sarif.json .
# Upload the SARIF file generated in the previous step
- name: Upload SARIF
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: output.sarif.json

102
.github/workflows/ci-features-admin.yml vendored Normal file
View File

@@ -0,0 +1,102 @@
name: CI Features - Admin
on: [pull_request]
jobs:
rspec:
runs-on: ubuntu-latest
services:
db:
image: postgres
env:
##
# The Postgres service fails its docker health check unless you
# specify these environment variables
#
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: growstuff_test
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
APP_DOMAIN_NAME: localhost:3000
APP_PROTOCOL: http
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
DATABASE_URL: postgres://postgres:postgres@localhost:5432/growstuff_test
DEVISE_SECRET_KEY: secret
ELASTIC_SEARCH_VERSION: "7.5.1-amd64"
GROWSTUFF_EMAIL: "noreply@test.growstuff.org"
GROWSTUFF_FLICKR_KEY: secretkey"
GROWSTUFF_FLICKR_SECRET: secretsecret
GROWSTUFF_SITE_NAME: "Growstuff (travis)"
RAILS_ENV: test
RAILS_SECRET_TOKEN: supersecret
steps:
- name: Checkout this repo
uses: actions/checkout@v4
- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Start Elasticsearch
uses: elastic/elastic-github-actions/elasticsearch@master
with:
stack-version: 7.5.1
##
# Cache Yarn modules
#
# See https://github.com/actions/cache/blob/master/examples.md#node---yarn for details
#
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install required OS packages
run: |
sudo apt-get -y install libpq-dev google-chrome-stable
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: '12'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Install required JS packages
run: yarn install
- name: install chrome
run: sudo apt-get install google-chrome-stable
- name: Prepare database for testing
run: bundle exec rails db:prepare
- name: precompile assets
run: bundle exec rails assets:precompile
- name: index into elastic search
run: bundle exec rails search:reindex
- name: Run rspec (admin/)
run: bundle exec rspec spec/features/admin/ -fd -t ~@flaky

View File

@@ -0,0 +1,102 @@
name: CI Features - Comments
on: [pull_request]
jobs:
rspec:
runs-on: ubuntu-latest
services:
db:
image: postgres
env:
##
# The Postgres service fails its docker health check unless you
# specify these environment variables
#
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: growstuff_test
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
APP_DOMAIN_NAME: localhost:3000
APP_PROTOCOL: http
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
DATABASE_URL: postgres://postgres:postgres@localhost:5432/growstuff_test
DEVISE_SECRET_KEY: secret
ELASTIC_SEARCH_VERSION: "7.5.1-amd64"
GROWSTUFF_EMAIL: "noreply@test.growstuff.org"
GROWSTUFF_FLICKR_KEY: secretkey"
GROWSTUFF_FLICKR_SECRET: secretsecret
GROWSTUFF_SITE_NAME: "Growstuff (travis)"
RAILS_ENV: test
RAILS_SECRET_TOKEN: supersecret
steps:
- name: Checkout this repo
uses: actions/checkout@v4
- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Start Elasticsearch
uses: elastic/elastic-github-actions/elasticsearch@master
with:
stack-version: 7.5.1
##
# Cache Yarn modules
#
# See https://github.com/actions/cache/blob/master/examples.md#node---yarn for details
#
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install required OS packages
run: |
sudo apt-get -y install libpq-dev google-chrome-stable
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: '12'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Install required JS packages
run: yarn install
- name: install chrome
run: sudo apt-get install google-chrome-stable
- name: Prepare database for testing
run: bundle exec rails db:prepare
- name: precompile assets
run: bundle exec rails assets:precompile
- name: index into elastic search
run: bundle exec rails search:reindex
- name: Run rspec (comments/)
run: bundle exec rspec spec/features/comments/ -fd -t ~@flaky

View File

@@ -0,0 +1,103 @@
name: CI Features - Conversations
on: [pull_request]
jobs:
rspec:
runs-on: ubuntu-latest
services:
db:
image: postgres
env:
##
# The Postgres service fails its docker health check unless you
# specify these environment variables
#
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: growstuff_test
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
APP_DOMAIN_NAME: localhost:3000
APP_PROTOCOL: http
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
DATABASE_URL: postgres://postgres:postgres@localhost:5432/growstuff_test
DEVISE_SECRET_KEY: secret
ELASTIC_SEARCH_VERSION: "7.5.1-amd64"
GROWSTUFF_EMAIL: "noreply@test.growstuff.org"
GROWSTUFF_FLICKR_KEY: secretkey"
GROWSTUFF_FLICKR_SECRET: secretsecret
GROWSTUFF_SITE_NAME: "Growstuff (travis)"
RAILS_ENV: test
RAILS_SECRET_TOKEN: supersecret
steps:
- name: Checkout this repo
uses: actions/checkout@v4
- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Start Elasticsearch
uses: elastic/elastic-github-actions/elasticsearch@master
with:
stack-version: 7.5.1
##
# Cache Yarn modules
#
# See https://github.com/actions/cache/blob/master/examples.md#node---yarn for details
#
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install required OS packages
run: |
sudo apt-get -y install libpq-dev google-chrome-stable
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: '12'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Install required JS packages
run: yarn install
- name: install chrome
run: sudo apt-get install google-chrome-stable
- name: Prepare database for testing
run: bundle exec rails db:prepare
- name: precompile assets
run: bundle exec rails assets:precompile
- name: index into elastic search
run: bundle exec rails search:reindex
- name: Run rspec (conversations/)
run: bundle exec rspec spec/features/conversations/ -fd -t ~@flaky

102
.github/workflows/ci-features-crops.yml vendored Normal file
View File

@@ -0,0 +1,102 @@
name: CI Features - Crops
on: [pull_request]
jobs:
rspec:
runs-on: ubuntu-latest
services:
db:
image: postgres
env:
##
# The Postgres service fails its docker health check unless you
# specify these environment variables
#
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: growstuff_test
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
APP_DOMAIN_NAME: localhost:3000
APP_PROTOCOL: http
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
DATABASE_URL: postgres://postgres:postgres@localhost:5432/growstuff_test
DEVISE_SECRET_KEY: secret
ELASTIC_SEARCH_VERSION: "7.5.1-amd64"
GROWSTUFF_EMAIL: "noreply@test.growstuff.org"
GROWSTUFF_FLICKR_KEY: secretkey"
GROWSTUFF_FLICKR_SECRET: secretsecret
GROWSTUFF_SITE_NAME: "Growstuff (travis)"
RAILS_ENV: test
RAILS_SECRET_TOKEN: supersecret
steps:
- name: Checkout this repo
uses: actions/checkout@v4
- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Start Elasticsearch
uses: elastic/elastic-github-actions/elasticsearch@master
with:
stack-version: 7.5.1
##
# Cache Yarn modules
#
# See https://github.com/actions/cache/blob/master/examples.md#node---yarn for details
#
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install required OS packages
run: |
sudo apt-get -y install libpq-dev google-chrome-stable
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: '12'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Install required JS packages
run: yarn install
- name: install chrome
run: sudo apt-get install google-chrome-stable
- name: Prepare database for testing
run: bundle exec rails db:prepare
- name: precompile assets
run: bundle exec rails assets:precompile
- name: index into elastic search
run: bundle exec rails search:reindex
- name: Run rspec (crops/)
run: bundle exec rspec spec/features/crops/ -fd -t ~@flaky

View File

@@ -0,0 +1,102 @@
name: CI Features - Gardens
on: [pull_request]
jobs:
rspec:
runs-on: ubuntu-latest
services:
db:
image: postgres
env:
##
# The Postgres service fails its docker health check unless you
# specify these environment variables
#
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: growstuff_test
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
APP_DOMAIN_NAME: localhost:3000
APP_PROTOCOL: http
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
DATABASE_URL: postgres://postgres:postgres@localhost:5432/growstuff_test
DEVISE_SECRET_KEY: secret
ELASTIC_SEARCH_VERSION: "7.5.1-amd64"
GROWSTUFF_EMAIL: "noreply@test.growstuff.org"
GROWSTUFF_FLICKR_KEY: secretkey"
GROWSTUFF_FLICKR_SECRET: secretsecret
GROWSTUFF_SITE_NAME: "Growstuff (travis)"
RAILS_ENV: test
RAILS_SECRET_TOKEN: supersecret
steps:
- name: Checkout this repo
uses: actions/checkout@v4
- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Start Elasticsearch
uses: elastic/elastic-github-actions/elasticsearch@master
with:
stack-version: 7.5.1
##
# Cache Yarn modules
#
# See https://github.com/actions/cache/blob/master/examples.md#node---yarn for details
#
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install required OS packages
run: |
sudo apt-get -y install libpq-dev google-chrome-stable
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: '12'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Install required JS packages
run: yarn install
- name: install chrome
run: sudo apt-get install google-chrome-stable
- name: Prepare database for testing
run: bundle exec rails db:prepare
- name: precompile assets
run: bundle exec rails assets:precompile
- name: index into elastic search
run: bundle exec rails search:reindex
- name: Run rspec (gardens/)
run: bundle exec rspec spec/features/gardens/ -fd -t ~@flaky

View File

@@ -0,0 +1,102 @@
name: CI Features - Harvests
on: [pull_request]
jobs:
rspec:
runs-on: ubuntu-latest
services:
db:
image: postgres
env:
##
# The Postgres service fails its docker health check unless you
# specify these environment variables
#
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: growstuff_test
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
APP_DOMAIN_NAME: localhost:3000
APP_PROTOCOL: http
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
DATABASE_URL: postgres://postgres:postgres@localhost:5432/growstuff_test
DEVISE_SECRET_KEY: secret
ELASTIC_SEARCH_VERSION: "7.5.1-amd64"
GROWSTUFF_EMAIL: "noreply@test.growstuff.org"
GROWSTUFF_FLICKR_KEY: secretkey"
GROWSTUFF_FLICKR_SECRET: secretsecret
GROWSTUFF_SITE_NAME: "Growstuff (travis)"
RAILS_ENV: test
RAILS_SECRET_TOKEN: supersecret
steps:
- name: Checkout this repo
uses: actions/checkout@v4
- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Start Elasticsearch
uses: elastic/elastic-github-actions/elasticsearch@master
with:
stack-version: 7.5.1
##
# Cache Yarn modules
#
# See https://github.com/actions/cache/blob/master/examples.md#node---yarn for details
#
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install required OS packages
run: |
sudo apt-get -y install libpq-dev google-chrome-stable
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: '12'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Install required JS packages
run: yarn install
- name: install chrome
run: sudo apt-get install google-chrome-stable
- name: Prepare database for testing
run: bundle exec rails db:prepare
- name: precompile assets
run: bundle exec rails assets:precompile
- name: index into elastic search
run: bundle exec rails search:reindex
- name: Run rspec (harvests/)
run: bundle exec rspec spec/features/harvests/ -fd -t ~@flaky

102
.github/workflows/ci-features-home.yml vendored Normal file
View File

@@ -0,0 +1,102 @@
name: CI Features - Home
on: [pull_request]
jobs:
rspec:
runs-on: ubuntu-latest
services:
db:
image: postgres
env:
##
# The Postgres service fails its docker health check unless you
# specify these environment variables
#
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: growstuff_test
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
APP_DOMAIN_NAME: localhost:3000
APP_PROTOCOL: http
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
DATABASE_URL: postgres://postgres:postgres@localhost:5432/growstuff_test
DEVISE_SECRET_KEY: secret
ELASTIC_SEARCH_VERSION: "7.5.1-amd64"
GROWSTUFF_EMAIL: "noreply@test.growstuff.org"
GROWSTUFF_FLICKR_KEY: secretkey"
GROWSTUFF_FLICKR_SECRET: secretsecret
GROWSTUFF_SITE_NAME: "Growstuff (travis)"
RAILS_ENV: test
RAILS_SECRET_TOKEN: supersecret
steps:
- name: Checkout this repo
uses: actions/checkout@v4
- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Start Elasticsearch
uses: elastic/elastic-github-actions/elasticsearch@master
with:
stack-version: 7.5.1
##
# Cache Yarn modules
#
# See https://github.com/actions/cache/blob/master/examples.md#node---yarn for details
#
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install required OS packages
run: |
sudo apt-get -y install libpq-dev google-chrome-stable
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: '12'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Install required JS packages
run: yarn install
- name: install chrome
run: sudo apt-get install google-chrome-stable
- name: Prepare database for testing
run: bundle exec rails db:prepare
- name: precompile assets
run: bundle exec rails assets:precompile
- name: index into elastic search
run: bundle exec rails search:reindex
- name: Run rspec (home/)
run: bundle exec rspec spec/features/home/ -fd -t ~@flaky

View File

@@ -0,0 +1,102 @@
name: CI Features - Members
on: [pull_request]
jobs:
rspec:
runs-on: ubuntu-latest
services:
db:
image: postgres
env:
##
# The Postgres service fails its docker health check unless you
# specify these environment variables
#
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: growstuff_test
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
APP_DOMAIN_NAME: localhost:3000
APP_PROTOCOL: http
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
DATABASE_URL: postgres://postgres:postgres@localhost:5432/growstuff_test
DEVISE_SECRET_KEY: secret
ELASTIC_SEARCH_VERSION: "7.5.1-amd64"
GROWSTUFF_EMAIL: "noreply@test.growstuff.org"
GROWSTUFF_FLICKR_KEY: secretkey"
GROWSTUFF_FLICKR_SECRET: secretsecret
GROWSTUFF_SITE_NAME: "Growstuff (travis)"
RAILS_ENV: test
RAILS_SECRET_TOKEN: supersecret
steps:
- name: Checkout this repo
uses: actions/checkout@v4
- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Start Elasticsearch
uses: elastic/elastic-github-actions/elasticsearch@master
with:
stack-version: 7.5.1
##
# Cache Yarn modules
#
# See https://github.com/actions/cache/blob/master/examples.md#node---yarn for details
#
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install required OS packages
run: |
sudo apt-get -y install libpq-dev google-chrome-stable
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: '12'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Install required JS packages
run: yarn install
- name: install chrome
run: sudo apt-get install google-chrome-stable
- name: Prepare database for testing
run: bundle exec rails db:prepare
- name: precompile assets
run: bundle exec rails assets:precompile
- name: index into elastic search
run: bundle exec rails search:reindex
- name: Run rspec (members/)
run: bundle exec rspec spec/features/members/ -fd -t ~@flaky

View File

@@ -0,0 +1,102 @@
name: CI Features - Plantings
on: [pull_request]
jobs:
rspec:
runs-on: ubuntu-latest
services:
db:
image: postgres
env:
##
# The Postgres service fails its docker health check unless you
# specify these environment variables
#
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: growstuff_test
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
APP_DOMAIN_NAME: localhost:3000
APP_PROTOCOL: http
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
DATABASE_URL: postgres://postgres:postgres@localhost:5432/growstuff_test
DEVISE_SECRET_KEY: secret
ELASTIC_SEARCH_VERSION: "7.5.1-amd64"
GROWSTUFF_EMAIL: "noreply@test.growstuff.org"
GROWSTUFF_FLICKR_KEY: secretkey"
GROWSTUFF_FLICKR_SECRET: secretsecret
GROWSTUFF_SITE_NAME: "Growstuff (travis)"
RAILS_ENV: test
RAILS_SECRET_TOKEN: supersecret
steps:
- name: Checkout this repo
uses: actions/checkout@v4
- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Start Elasticsearch
uses: elastic/elastic-github-actions/elasticsearch@master
with:
stack-version: 7.5.1
##
# Cache Yarn modules
#
# See https://github.com/actions/cache/blob/master/examples.md#node---yarn for details
#
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install required OS packages
run: |
sudo apt-get -y install libpq-dev google-chrome-stable
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: '12'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Install required JS packages
run: yarn install
- name: install chrome
run: sudo apt-get install google-chrome-stable
- name: Prepare database for testing
run: bundle exec rails db:prepare
- name: precompile assets
run: bundle exec rails assets:precompile
- name: index into elastic search
run: bundle exec rails search:reindex
- name: Run rspec (plantings/)
run: bundle exec rspec spec/features/plantings/ -fd

102
.github/workflows/ci-features-seeds.yml vendored Normal file
View File

@@ -0,0 +1,102 @@
name: CI Features - Seeds
on: [pull_request]
jobs:
rspec:
runs-on: ubuntu-latest
services:
db:
image: postgres
env:
##
# The Postgres service fails its docker health check unless you
# specify these environment variables
#
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: growstuff_test
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
APP_DOMAIN_NAME: localhost:3000
APP_PROTOCOL: http
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
DATABASE_URL: postgres://postgres:postgres@localhost:5432/growstuff_test
DEVISE_SECRET_KEY: secret
ELASTIC_SEARCH_VERSION: "7.5.1-amd64"
GROWSTUFF_EMAIL: "noreply@test.growstuff.org"
GROWSTUFF_FLICKR_KEY: secretkey"
GROWSTUFF_FLICKR_SECRET: secretsecret
GROWSTUFF_SITE_NAME: "Growstuff (travis)"
RAILS_ENV: test
RAILS_SECRET_TOKEN: supersecret
steps:
- name: Checkout this repo
uses: actions/checkout@v4
- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Start Elasticsearch
uses: elastic/elastic-github-actions/elasticsearch@master
with:
stack-version: 7.5.1
##
# Cache Yarn modules
#
# See https://github.com/actions/cache/blob/master/examples.md#node---yarn for details
#
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install required OS packages
run: |
sudo apt-get -y install libpq-dev google-chrome-stable
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: '12'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Install required JS packages
run: yarn install
- name: install chrome
run: sudo apt-get install google-chrome-stable
- name: Prepare database for testing
run: bundle exec rails db:prepare
- name: precompile assets
run: bundle exec rails assets:precompile
- name: index into elastic search
run: bundle exec rails search:reindex
- name: Run rspec (seeds/)
run: bundle exec rspec spec/features/seeds/ -fd -t ~@flaky

View File

@@ -0,0 +1,102 @@
name: CI Features - Timeline
on: [pull_request]
jobs:
rspec:
runs-on: ubuntu-latest
services:
db:
image: postgres
env:
##
# The Postgres service fails its docker health check unless you
# specify these environment variables
#
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: growstuff_test
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
APP_DOMAIN_NAME: localhost:3000
APP_PROTOCOL: http
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
DATABASE_URL: postgres://postgres:postgres@localhost:5432/growstuff_test
DEVISE_SECRET_KEY: secret
ELASTIC_SEARCH_VERSION: "7.5.1-amd64"
GROWSTUFF_EMAIL: "noreply@test.growstuff.org"
GROWSTUFF_FLICKR_KEY: secretkey"
GROWSTUFF_FLICKR_SECRET: secretsecret
GROWSTUFF_SITE_NAME: "Growstuff (travis)"
RAILS_ENV: test
RAILS_SECRET_TOKEN: supersecret
steps:
- name: Checkout this repo
uses: actions/checkout@v4
- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Start Elasticsearch
uses: elastic/elastic-github-actions/elasticsearch@master
with:
stack-version: 7.5.1
##
# Cache Yarn modules
#
# See https://github.com/actions/cache/blob/master/examples.md#node---yarn for details
#
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install required OS packages
run: |
sudo apt-get -y install libpq-dev google-chrome-stable
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: '12'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Install required JS packages
run: yarn install
- name: install chrome
run: sudo apt-get install google-chrome-stable
- name: Prepare database for testing
run: bundle exec rails db:prepare
- name: precompile assets
run: bundle exec rails assets:precompile
- name: index into elastic search
run: bundle exec rails search:reindex
- name: Run rspec (timeline/)
run: bundle exec rspec spec/features/timeline/ -fd -t ~@flaky

125
.github/workflows/ci-features.yml vendored Normal file
View File

@@ -0,0 +1,125 @@
name: CI Features
on: [pull_request]
jobs:
rspec:
runs-on: ubuntu-latest
services:
db:
image: postgres
env:
##
# The Postgres service fails its docker health check unless you
# specify these environment variables
#
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: growstuff_test
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
APP_DOMAIN_NAME: localhost:3000
APP_PROTOCOL: http
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
DATABASE_URL: postgres://postgres:postgres@localhost:5432/growstuff_test
DEVISE_SECRET_KEY: secret
ELASTIC_SEARCH_VERSION: "7.5.1-amd64"
GROWSTUFF_EMAIL: "noreply@test.growstuff.org"
GROWSTUFF_FLICKR_KEY: secretkey"
GROWSTUFF_FLICKR_SECRET: secretsecret
GROWSTUFF_SITE_NAME: "Growstuff (travis)"
RAILS_ENV: test
RAILS_SECRET_TOKEN: supersecret
steps:
- name: Checkout this repo
uses: actions/checkout@v4
- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Start Elasticsearch
uses: elastic/elastic-github-actions/elasticsearch@master
with:
stack-version: 7.5.1
##
# Cache Yarn modules
#
# See https://github.com/actions/cache/blob/master/examples.md#node---yarn for details
#
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Setup yarn cache
uses: actions/cache@v4
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install required OS packages
run: |
sudo apt-get -y install libpq-dev google-chrome-stable
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: '12'
- name: Install Ruby (version given by .ruby-version) and Bundler
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Install required JS packages
run: yarn install
- name: install chrome
run: sudo apt-get install google-chrome-stable
- name: Prepare database for testing
run: bundle exec rails db:prepare
- name: precompile assets
run: bundle exec rails assets:precompile
- name: index into elastic search
run: bundle exec rails search:reindex
- name: Run rspec (*_spec)
run: bundle exec rspec spec/features/*_spec.rb -fd
- name: Run rspec (percy/)
run: bundle exec rspec spec/features/percy/ -fd
- name: Run rspec (photos/)
run: bundle exec rspec spec/features/photos/ -fd
- name: Run rspec (places/)
run: bundle exec rspec spec/features/places/ -fd
- name: Run rspec (plantings/)
run: bundle exec rspec spec/features/plantings/ -fd
- name: Run rspec (posts/)
run: bundle exec rspec spec/features/posts/ -fd
- name: Run rspec (rss/)
run: bundle exec rspec spec/features/rss/ -fd
- name: Report to code climate
run: |
gem install codeclimate-test-reporter
codeclimate-test-reporter

View File

@@ -106,15 +106,28 @@ jobs:
- name: Prepare database for testing
run: bundle exec rails db:prepare
- name: precompile assets
run: bundle exec rails assets:precompile
- name: index into elastic search
run: bundle exec rails search:reindex
- name: Run rspec (report results to Percy.io and CodeClimate)
run: bundle exec rspec spec -fd
- name: Run rspec (lib)
run: bundle exec rspec spec/lib/ -fd --fail-fast
- name: Run rspec (services)
run: bundle exec rspec spec/services/ -fd --fail-fast
- name: Run rspec (models)
run: bundle exec rspec spec/models/ -fd --fail-fast
- name: Run rspec (controllers)
run: bundle exec rspec spec/controllers/ -fd --fail-fast
- name: Run rspec (views)
run: bundle exec rspec spec/views/ -fd --fail-fast
- name: Run rspec (routing)
run: bundle exec rspec spec/routing/ -fd --fail-fast
- name: Run rspec (request)
run: bundle exec rspec spec/requests/ -fd --fail-fast
- name: Report to code climate
run: |

View File

@@ -158,7 +158,7 @@ Metrics/BlockLength:
# Offense count: 7
# Configuration parameters: CountComments, CountAsOne.
Metrics/ClassLength:
Max: 183
Max: 188
# Offense count: 6
# Configuration parameters: AllowedMethods, AllowedPatterns.

View File

@@ -1 +1 @@
3.3.4
3.3.7

View File

@@ -5,13 +5,13 @@ source 'https://rubygems.org'
# Match ruby version in .ruby-version
ruby File.read('.ruby-version')
gem 'rails', '~> 7.1.0'
gem 'rails', '~> 7.2.0'
# Keeping old sprockets
# https://github.com/rails/sprockets-rails/issues/444#issuecomment-637817050
gem "sprockets", "<4"
gem 'bundler', '>= 2.3.10'
gem 'bundler', '>= 2.4.22'
gem 'coffee-rails'
gem 'haml'

View File

@@ -33,51 +33,46 @@ GEM
GEM
remote: https://rubygems.org/
specs:
actioncable (7.1.3.4)
actionpack (= 7.1.3.4)
activesupport (= 7.1.3.4)
actioncable (7.2.2.1)
actionpack (= 7.2.2.1)
activesupport (= 7.2.2.1)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
zeitwerk (~> 2.6)
actionmailbox (7.1.3.4)
actionpack (= 7.1.3.4)
activejob (= 7.1.3.4)
activerecord (= 7.1.3.4)
activestorage (= 7.1.3.4)
activesupport (= 7.1.3.4)
mail (>= 2.7.1)
net-imap
net-pop
net-smtp
actionmailer (7.1.3.4)
actionpack (= 7.1.3.4)
actionview (= 7.1.3.4)
activejob (= 7.1.3.4)
activesupport (= 7.1.3.4)
mail (~> 2.5, >= 2.5.4)
net-imap
net-pop
net-smtp
actionmailbox (7.2.2.1)
actionpack (= 7.2.2.1)
activejob (= 7.2.2.1)
activerecord (= 7.2.2.1)
activestorage (= 7.2.2.1)
activesupport (= 7.2.2.1)
mail (>= 2.8.0)
actionmailer (7.2.2.1)
actionpack (= 7.2.2.1)
actionview (= 7.2.2.1)
activejob (= 7.2.2.1)
activesupport (= 7.2.2.1)
mail (>= 2.8.0)
rails-dom-testing (~> 2.2)
actionpack (7.1.3.4)
actionview (= 7.1.3.4)
activesupport (= 7.1.3.4)
actionpack (7.2.2.1)
actionview (= 7.2.2.1)
activesupport (= 7.2.2.1)
nokogiri (>= 1.8.5)
racc
rack (>= 2.2.4)
rack (>= 2.2.4, < 3.2)
rack-session (>= 1.0.1)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
actiontext (7.1.3.4)
actionpack (= 7.1.3.4)
activerecord (= 7.1.3.4)
activestorage (= 7.1.3.4)
activesupport (= 7.1.3.4)
useragent (~> 0.16)
actiontext (7.2.2.1)
actionpack (= 7.2.2.1)
activerecord (= 7.2.2.1)
activestorage (= 7.2.2.1)
activesupport (= 7.2.2.1)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (7.1.3.4)
activesupport (= 7.1.3.4)
actionview (7.2.2.1)
activesupport (= 7.2.2.1)
builder (~> 3.1)
erubi (~> 1.11)
rails-dom-testing (~> 2.2)
@@ -85,52 +80,56 @@ GEM
active_link_to (1.0.5)
actionpack
addressable
active_median (0.4.1)
activesupport (>= 6.1)
active_median (0.6.0)
activesupport (>= 7.1)
active_record_union (1.3.0)
activerecord (>= 4.0)
active_utils (3.4.1)
active_utils (3.5.0)
activesupport (>= 4.2)
i18n
activejob (7.1.3.4)
activesupport (= 7.1.3.4)
activejob (7.2.2.1)
activesupport (= 7.2.2.1)
globalid (>= 0.3.6)
activemodel (7.1.3.4)
activesupport (= 7.1.3.4)
activerecord (7.1.3.4)
activemodel (= 7.1.3.4)
activesupport (= 7.1.3.4)
activemodel (7.2.2.1)
activesupport (= 7.2.2.1)
activerecord (7.2.2.1)
activemodel (= 7.2.2.1)
activesupport (= 7.2.2.1)
timeout (>= 0.4.0)
activestorage (7.1.3.4)
actionpack (= 7.1.3.4)
activejob (= 7.1.3.4)
activerecord (= 7.1.3.4)
activesupport (= 7.1.3.4)
activestorage (7.2.2.1)
actionpack (= 7.2.2.1)
activejob (= 7.2.2.1)
activerecord (= 7.2.2.1)
activesupport (= 7.2.2.1)
marcel (~> 1.0)
activesupport (7.1.3.4)
activesupport (7.2.2.1)
base64
benchmark (>= 0.3)
bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2)
concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
logger (>= 1.4.2)
minitest (>= 5.1)
mutex_m
tzinfo (~> 2.0)
securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
ast (2.4.2)
ast (2.4.3)
autoprefixer-rails (10.4.16.0)
execjs (~> 2)
axe-core-api (4.9.1)
axe-core-api (4.10.3)
dumb_delegator
ostruct
virtus
axe-core-capybara (4.9.1)
axe-core-api (= 4.9.1)
axe-core-capybara (4.10.3)
axe-core-api (= 4.10.3)
dumb_delegator
axe-core-rspec (4.9.1)
axe-core-api (= 4.9.1)
axe-core-rspec (4.10.3)
axe-core-api (= 4.10.3)
dumb_delegator
ostruct
virtus
axiom-types (0.1.1)
descendants_tracker (~> 0.0.4)
@@ -138,11 +137,12 @@ GEM
thread_safe (~> 0.3, >= 0.3.1)
base64 (0.2.0)
bcrypt (3.1.20)
benchmark (0.4.0)
better_errors (2.10.1)
erubi (>= 1.0.0)
rack (>= 0.9.0)
rouge (>= 1.0.0)
bigdecimal (3.1.8)
bigdecimal (3.1.9)
bluecloth (2.2.0)
bonsai-elasticsearch-rails (7.0.1)
elasticsearch-model (< 8)
@@ -156,10 +156,10 @@ GEM
actionpack (>= 6.1)
activemodel (>= 6.1)
builder (3.3.0)
bullet (7.2.0)
bullet (8.0.7)
activesupport (>= 3.0.0)
uniform_notifier (~> 1.11)
byebug (11.1.3)
byebug (12.0.0)
cancancan (3.6.1)
capybara (3.40.0)
addressable
@@ -183,7 +183,7 @@ GEM
image_processing (~> 1.1)
marcel (~> 1.0.0)
ssrf_filter (~> 1.0)
chartkick (5.0.7)
chartkick (5.1.5)
childprocess (5.0.0)
codeclimate-test-reporter (1.0.9)
simplecov (<= 0.13)
@@ -199,20 +199,21 @@ GEM
coffee-script-source (1.12.2)
comfy_bootstrap_form (4.0.9)
rails (>= 5.0.0)
concurrent-ruby (1.3.3)
connection_pool (2.4.1)
concurrent-ruby (1.3.5)
connection_pool (2.5.3)
crass (1.0.6)
csv (3.3.0)
csv_shaper (1.3.2)
csv (3.3.1)
csv_shaper (1.4.0)
activesupport (>= 3.0.0)
csv
dalli (3.2.8)
database_cleaner (2.0.2)
database_cleaner (2.1.0)
database_cleaner-active_record (>= 2, < 3)
database_cleaner-active_record (2.1.0)
database_cleaner-active_record (2.2.0)
activerecord (>= 5.a)
database_cleaner-core (~> 2.0.0)
database_cleaner-core (2.0.1)
date (3.3.4)
date (3.4.1)
descendants_tracker (0.0.4)
thread_safe (~> 0.3, >= 0.3.1)
devise (4.9.4)
@@ -221,16 +222,16 @@ GEM
railties (>= 4.1.0)
responders
warden (~> 1.2.3)
diff-lcs (1.5.1)
discard (1.3.0)
activerecord (>= 4.2, < 8)
diff-lcs (1.6.1)
discard (1.4.0)
activerecord (>= 4.2, < 9.0)
docile (1.1.5)
dotenv (3.1.2)
dotenv-rails (3.1.2)
dotenv (= 3.1.2)
dotenv (3.1.8)
dotenv-rails (3.1.8)
dotenv (= 3.1.8)
railties (>= 6.1)
drb (2.2.1)
dumb_delegator (1.0.0)
dumb_delegator (1.1.0)
elasticsearch (7.0.0)
elasticsearch-api (= 7.0.0)
elasticsearch-transport (= 7.0.0)
@@ -244,22 +245,24 @@ GEM
elasticsearch-transport (7.0.0)
faraday
multi_json
erubi (1.13.0)
erubi (1.13.1)
erubis (2.7.0)
excon (0.110.0)
execjs (2.9.1)
factory_bot (6.4.6)
activesupport (>= 5.0.0)
factory_bot_rails (6.4.3)
factory_bot (~> 6.4)
railties (>= 5.0.0)
faker (3.4.2)
i18n (>= 1.8.11, < 2)
faraday (2.10.1)
faraday-net_http (>= 2.0, < 3.2)
excon (1.2.5)
logger
faraday-net_http (3.1.1)
net-http
execjs (2.10.0)
factory_bot (6.5.0)
activesupport (>= 5.0.0)
factory_bot_rails (6.4.4)
factory_bot (~> 6.5)
railties (>= 5.0.0)
faker (3.5.1)
i18n (>= 1.8.11, < 2)
faraday (2.13.1)
faraday-net_http (>= 2.0, < 3.5)
json
logger
faraday-net_http (3.4.0)
net-http (>= 0.5.0)
ffi (1.16.3)
flickraw (0.9.10)
font-awesome-sass (5.15.1)
@@ -267,7 +270,7 @@ GEM
friendly_id (5.5.1)
activerecord (>= 4.0.0)
gbifrb (0.2.0)
geocoder (1.8.3)
geocoder (1.8.5)
base64 (>= 0.1.0)
csv (>= 3.0.0)
gibbon (1.2.1)
@@ -293,27 +296,29 @@ GEM
activesupport (>= 5.1)
haml (>= 4.0.6)
railties (>= 5.1)
haml_lint (0.58.0)
haml_lint (0.62.0)
haml (>= 5.0)
parallel (~> 1.10)
rainbow
rubocop (>= 1.0)
sysexits (~> 1.1)
hashie (5.0.0)
heroics (0.1.2)
heroics (0.1.3)
base64
erubis (~> 2.0)
excon
moneta
multi_json (>= 1.9.2)
webrick
highline (3.0.1)
highline (3.1.2)
reline
httparty (0.22.0)
csv
mini_mime (>= 1.0.0)
multi_xml (>= 0.5.2)
i18n (1.14.5)
i18n (1.14.7)
concurrent-ruby (~> 1.0)
i18n-tasks (1.0.14)
i18n-tasks (1.0.15)
activesupport (>= 4.0.2)
ast (>= 2.1.0)
erubi
@@ -322,25 +327,30 @@ GEM
parser (>= 3.2.2.1)
rails-i18n
rainbow (>= 2.2.2, < 4.0)
ruby-progressbar (~> 1.8, >= 1.8.1)
terminal-table (>= 1.5.1)
icalendar (2.10.2)
icalendar (2.11.0)
base64
ice_cube (~> 0.16)
logger
ostruct
ice_cube (0.17.0)
ice_nine (0.11.2)
image_processing (1.12.2)
mini_magick (>= 4.9.5, < 5)
ruby-vips (>= 2.0.17, < 3)
io-console (0.7.2)
irb (1.14.0)
io-console (0.8.0)
irb (1.15.2)
pp (>= 0.6.0)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
jquery-rails (4.6.0)
rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
json (2.7.2)
json-schema (4.1.1)
addressable (>= 2.8)
json (2.12.0)
json-schema (5.1.0)
addressable (~> 2.8)
jsonapi-resources (0.10.7)
activerecord (>= 4.1)
concurrent-ruby
@@ -349,7 +359,7 @@ GEM
kgio (2.11.4)
kramdown (2.4.0)
rexml
language_server-protocol (3.17.0.3)
language_server-protocol (3.17.0.5)
launchy (3.0.1)
addressable (~> 2.8)
childprocess (~> 5.0)
@@ -358,11 +368,12 @@ GEM
railties (>= 4.2.0)
letter_opener (1.10.0)
launchy (>= 2.2, < 4)
lint_roller (1.1.0)
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
logger (1.6.0)
loofah (2.22.0)
logger (1.7.0)
loofah (2.24.1)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
mail (2.8.1)
@@ -381,23 +392,22 @@ GEM
railties (>= 3.2)
matrix (0.4.2)
memcachier (0.0.2)
method_source (1.0.0)
method_source (1.1.0)
mimemagic (0.4.3)
nokogiri (~> 1)
rake
mini_magick (4.12.0)
mini_mime (1.1.5)
mini_portile2 (2.8.7)
minitest (5.24.1)
mini_portile2 (2.8.9)
minitest (5.25.5)
moneta (1.0.0)
msgpack (1.7.2)
msgpack (1.8.0)
multi_json (1.15.0)
multi_xml (0.7.1)
bigdecimal (~> 3.1)
mutex_m (0.2.0)
net-http (0.4.1)
net-http (0.6.0)
uri
net-imap (0.4.11)
net-imap (0.4.20)
date
net-protocol
net-pop (0.1.2)
@@ -406,15 +416,16 @@ GEM
timeout
net-smtp (0.5.0)
net-protocol
nio4r (2.7.3)
nokogiri (1.16.6)
nio4r (2.7.4)
nokogiri (1.18.8)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
nokogiri (1.16.6-x86_64-linux)
nokogiri (1.18.8-x86_64-linux-gnu)
racc (~> 1.4)
oauth (0.5.6)
oj (3.16.4)
oj (3.16.10)
bigdecimal (>= 3.0)
ostruct (>= 0.2)
omniauth (1.9.2)
hashie (>= 3.4.6)
rack (>= 1.6.2, < 3)
@@ -428,29 +439,35 @@ GEM
omniauth-oauth (~> 1.1)
rack
orm_adapter (0.5.0)
parallel (1.25.1)
parser (3.3.4.0)
ostruct (0.6.1)
parallel (1.27.0)
parser (3.3.8.0)
ast (~> 2.4.1)
racc
percy-capybara (5.0.0)
capybara (>= 3)
pg (1.5.7)
platform-api (3.7.0)
pg (1.5.9)
platform-api (3.8.0)
heroics (~> 0.1.1)
moneta (~> 1.0.0)
rate_throttle_client (~> 0.1.0)
popper_js (2.11.8)
pry (0.14.2)
pp (0.6.2)
prettyprint
prettyprint (0.2.0)
prism (1.4.0)
pry (0.15.2)
coderay (~> 1.1)
method_source (~> 1.0)
psych (5.1.2)
psych (5.2.6)
date
stringio
public_suffix (6.0.0)
puma (6.4.2)
public_suffix (6.0.1)
puma (6.6.0)
nio4r (~> 2.0)
query_diet (0.7.1)
query_diet (0.7.2)
racc (1.8.1)
rack (2.2.9)
rack (2.2.15)
rack-cors (2.0.2)
rack (>= 2.0.0)
rack-protection (3.2.0)
@@ -458,25 +475,25 @@ GEM
rack (~> 2.2, >= 2.2.4)
rack-session (1.0.2)
rack (< 3)
rack-test (2.1.0)
rack-test (2.2.0)
rack (>= 1.3)
rackup (1.0.0)
rackup (1.0.1)
rack (< 3)
webrick
rails (7.1.3.4)
actioncable (= 7.1.3.4)
actionmailbox (= 7.1.3.4)
actionmailer (= 7.1.3.4)
actionpack (= 7.1.3.4)
actiontext (= 7.1.3.4)
actionview (= 7.1.3.4)
activejob (= 7.1.3.4)
activemodel (= 7.1.3.4)
activerecord (= 7.1.3.4)
activestorage (= 7.1.3.4)
activesupport (= 7.1.3.4)
rails (7.2.2.1)
actioncable (= 7.2.2.1)
actionmailbox (= 7.2.2.1)
actionmailer (= 7.2.2.1)
actionpack (= 7.2.2.1)
actiontext (= 7.2.2.1)
actionview (= 7.2.2.1)
activejob (= 7.2.2.1)
activemodel (= 7.2.2.1)
activerecord (= 7.2.2.1)
activestorage (= 7.2.2.1)
activesupport (= 7.2.2.1)
bundler (>= 1.15.0)
railties (= 7.1.3.4)
railties (= 7.2.2.1)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1)
@@ -485,10 +502,10 @@ GEM
activesupport (>= 5.0.0)
minitest
nokogiri (>= 1.6)
rails-html-sanitizer (1.6.0)
rails-html-sanitizer (1.6.2)
loofah (~> 2.21)
nokogiri (~> 1.14)
rails-i18n (7.0.9)
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
rails-i18n (7.0.10)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8)
rails_12factor (0.0.3)
@@ -496,10 +513,10 @@ GEM
rails_stdout_logging
rails_serve_static_assets (0.0.5)
rails_stdout_logging (0.0.5)
railties (7.1.3.4)
actionpack (= 7.1.3.4)
activesupport (= 7.1.3.4)
irb
railties (7.2.2.1)
actionpack (= 7.2.2.1)
activesupport (= 7.2.2.1)
irb (~> 1.13)
rackup (>= 1.0.0)
rake (>= 12.2)
thor (~> 1.0, >= 1.2.2)
@@ -511,93 +528,100 @@ GEM
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
rdoc (6.7.0)
rdoc (6.13.1)
psych (>= 4.0.0)
recaptcha (5.17.0)
redis-client (0.22.2)
recaptcha (5.19.0)
redis-client (0.23.2)
connection_pool
regexp_parser (2.9.2)
reline (0.5.9)
regexp_parser (2.10.0)
reline (0.6.1)
io-console (~> 0.5)
responders (3.1.1)
actionpack (>= 5.2)
railties (>= 5.2)
rexml (3.3.4)
strscan
rexml (3.4.1)
rouge (4.1.2)
rspec (3.13.0)
rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0)
rspec-activemodel-mocks (1.2.0)
rspec-activemodel-mocks (1.2.1)
activemodel (>= 3.0)
activesupport (>= 3.0)
rspec-mocks (>= 2.99, < 4.0)
rspec-core (3.13.0)
rspec-core (3.13.3)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.1)
rspec-expectations (3.13.4)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-mocks (3.13.1)
rspec-mocks (3.13.4)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-rails (6.1.3)
actionpack (>= 6.1)
activesupport (>= 6.1)
railties (>= 6.1)
rspec-rails (8.0.0)
actionpack (>= 7.2)
activesupport (>= 7.2)
railties (>= 7.2)
rspec-core (~> 3.13)
rspec-expectations (~> 3.13)
rspec-mocks (~> 3.13)
rspec-support (~> 3.13)
rspec-support (3.13.1)
rspectre (0.1.0)
parser (>= 3.2.2.1)
rspec (~> 3.9)
rswag-api (2.13.0)
activesupport (>= 3.1, < 7.2)
railties (>= 3.1, < 7.2)
rswag-specs (2.13.0)
activesupport (>= 3.1, < 7.2)
json-schema (>= 2.2, < 5.0)
railties (>= 3.1, < 7.2)
rspec-support (3.13.3)
rspectre (0.2.0)
parser (>= 3.3.7.1)
prism (~> 1.3)
rspec (~> 3.10)
rswag-api (2.16.0)
activesupport (>= 5.2, < 8.1)
railties (>= 5.2, < 8.1)
rswag-specs (2.16.0)
activesupport (>= 5.2, < 8.1)
json-schema (>= 2.2, < 6.0)
railties (>= 5.2, < 8.1)
rspec-core (>= 2.14)
rswag-ui (2.13.0)
actionpack (>= 3.1, < 7.2)
railties (>= 3.1, < 7.2)
rubocop (1.65.1)
rswag-ui (2.16.0)
actionpack (>= 5.2, < 8.1)
railties (>= 5.2, < 8.1)
rubocop (1.75.5)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.4, < 3.0)
rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.31.1, < 2.0)
regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.44.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.31.3)
parser (>= 3.3.1.0)
rubocop-capybara (2.21.0)
rubocop (~> 1.41)
rubocop-factory_bot (2.26.1)
rubocop (~> 1.61)
rubocop-rails (2.25.1)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.44.1)
parser (>= 3.3.7.2)
prism (~> 1.4)
rubocop-capybara (2.22.1)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-factory_bot (2.27.1)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-rails (2.32.0)
activesupport (>= 4.2.0)
lint_roller (~> 1.1)
rack (>= 1.1)
rubocop (>= 1.33.0, < 2.0)
rubocop-ast (>= 1.31.1, < 2.0)
rubocop-rake (0.6.0)
rubocop (~> 1.0)
rubocop-rspec (3.0.3)
rubocop (~> 1.61)
rubocop-rspec_rails (2.30.0)
rubocop (~> 1.61)
rubocop-rspec (~> 3, >= 3.0.1)
rubocop (>= 1.75.0, < 2.0)
rubocop-ast (>= 1.44.0, < 2.0)
rubocop-rake (0.7.1)
lint_roller (~> 1.1)
rubocop (>= 1.72.1)
rubocop-rspec (3.6.0)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-rspec_rails (2.31.0)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-rspec (~> 3.5)
ruby-progressbar (1.13.0)
ruby-units (4.0.3)
ruby-units (4.1.0)
ruby-vips (2.2.1)
ffi (~> 1.12)
rubyzip (2.3.2)
rubyzip (2.4.1)
sass (3.7.4)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
@@ -611,19 +635,20 @@ GEM
sprockets (> 3.0)
sprockets-rails
tilt
scout_apm (5.3.8)
scout_apm (5.6.4)
parser
searchkick (5.3.1)
activemodel (>= 6.1)
hashie
selenium-webdriver (4.23.0)
securerandom (0.4.1)
selenium-webdriver (4.32.0)
base64 (~> 0.2)
logger (~> 1.4)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
sidekiq (7.3.0)
concurrent-ruby (< 2)
sidekiq (7.3.9)
base64
connection_pool (>= 2.3.0)
logger
rack (>= 2.2.4)
@@ -633,7 +658,7 @@ GEM
json (>= 1.8, < 3)
simplecov-html (~> 0.10.0)
simplecov-html (0.10.2)
sprockets (3.7.3)
sprockets (3.7.5)
base64
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
@@ -642,32 +667,35 @@ GEM
activesupport (>= 5.2)
sprockets (>= 3.0.0)
ssrf_filter (1.1.2)
stringio (3.1.1)
strscan (3.1.0)
stringio (3.1.7)
sysexits (1.2.0)
temple (0.10.3)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
terser (1.2.3)
terminal-table (4.0.0)
unicode-display_width (>= 1.1.1, < 4)
terser (1.2.5)
execjs (>= 0.3.0, < 3)
thor (1.3.1)
thor (1.3.2)
thread_safe (0.3.6)
tilt (2.4.0)
tilt (2.6.0)
timecop (0.9.10)
timeout (0.4.1)
timeout (0.4.3)
trollop (1.16.2)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
unicode-display_width (2.5.0)
unicode-display_width (3.1.4)
unicode-emoji (~> 4.0, >= 4.0.4)
unicode-emoji (4.0.4)
unicorn (6.1.0)
kgio (~> 2.6)
raindrops (~> 0.7)
uniform_notifier (1.16.0)
uri (0.13.0)
uniform_notifier (1.17.0)
uri (1.0.3)
useragent (0.16.11)
validate_url (1.0.15)
activemodel (>= 3.0.0)
public_suffix
vcr (6.2.0)
vcr (6.3.1)
base64
virtus (2.0.0)
axiom-types (~> 0.1)
coercible (~> 1.0)
@@ -678,7 +706,7 @@ GEM
nokogiri (>= 1.2.0)
rack (>= 1.0)
rack-test (>= 0.5.3)
webrick (1.8.1)
webrick (1.9.1)
websocket (1.2.11)
websocket-driver (0.7.6)
websocket-extensions (>= 0.1.0)
@@ -690,7 +718,7 @@ GEM
webrick
xpath (3.2.0)
nokogiri (~> 1.8)
zeitwerk (2.6.16)
zeitwerk (2.7.2)
PLATFORMS
ruby
@@ -709,7 +737,7 @@ DEPENDENCIES
bootstrap-datepicker-rails
bootstrap_form (>= 4.5.0)
bullet
bundler (>= 2.3.10)
bundler (>= 2.4.22)
byebug
cancancan
capybara
@@ -768,7 +796,7 @@ DEPENDENCIES
query_diet
rack-cors
rack-protection (>= 2.0.1)
rails (~> 7.1.0)
rails (~> 7.2.0)
rails-assets-leaflet.markercluster!
rails-controller-testing
rails_12factor
@@ -806,7 +834,7 @@ DEPENDENCIES
xmlrpc
RUBY VERSION
ruby 3.3.4p94
ruby 3.3.7p123
BUNDLED WITH
2.4.22

View File

@@ -47,4 +47,13 @@
margin-left: auto;
}
}
.card-footer {
max-height: 2em;
-webkit-line-clamp: 1;
overflow: hidden;
text-overflow: ellipsis;
margin-bottom: 0.5em;
padding-top: 0;
}
}

View File

@@ -8,6 +8,9 @@ body {
font-family: $default-font;
}
.navbar {
flex-wrap: nowrap;
}
.navbar-brand {
.site-name {
font-family: "Modak", cursive;
@@ -16,7 +19,7 @@ body {
}
img {
height: 60px;
height: 100%;
}
}

View File

@@ -24,12 +24,16 @@ class ActivitiesController < DataController
end
def show
# @activity is loaded by load_and_authorize_resource.
# We need to ensure comments are eager-loaded.
@activity = Activity.includes(comments: :author).find(params[:id])
respond_with @activity
end
def new
@activity = Activity.new(
owner: current_member
owner: current_member,
due_date: Date.today
)
if params[:garden_id]
@activity.garden = Garden.find_by(

View File

@@ -13,43 +13,66 @@ class CommentsController < ApplicationController
end
def new
@comment = Comment.new
@post = Post.find_by(id: params[:post_id])
if @post
@comments = @post.comments
respond_with(@comments)
@commentable = find_commentable
if @commentable
@comment = @commentable.comments.new
@comments = @commentable.comments.post_order # Assuming post_order is generic enough or will be adapted
respond_with(@comment) # Changed from @comments to @comment, or @commentable
else
redirect_to(request.referer || root_url,
alert: "Can't post a comment on a non-existent post")
alert: "Cannot add a comment to a non-existent or unspecified item.")
end
end
def edit
@comments = @comment.post.comments
# @comment is loaded by load_and_authorize_resource
@comments = @comment.commentable.comments.post_order # Assuming post_order is generic
end
def create
@comment = Comment.new(comment_params)
@comment.author = current_member
@comment.save
respond_with @comment, location: @comment.post
@commentable = find_commentable
if @commentable
@comment = @commentable.comments.new(comment_params)
@comment.author = current_member
@comment.save
respond_with @comment, location: @comment.commentable # Redirect to the commentable parent
else
redirect_to(request.referer || root_url,
alert: "Cannot create comment for a non-existent or unspecified item.")
end
end
def update
@comment.update(body: comment_params['body'])
respond_with @comment, location: @comment.post
# @comment is loaded by load_and_authorize_resource
@comment.update(comment_params) # body is permitted by comment_params
respond_with @comment, location: @comment.commentable # Redirect to the commentable parent
end
def destroy
@post = @comment.post
# @comment is loaded by load_and_authorize_resource
@commentable = @comment.commentable # Store before destroying
@comment.destroy
respond_with(@post)
respond_with @comment, location: @commentable # Redirect to the commentable parent
end
private
def find_commentable
params.each do |name, value|
if name =~ /(.+)_id$/
model_name = $1.classify
# Ensure model_name is one of the expected commentable types
# to prevent arbitrary model lookups.
allowed_commentables = %w[Post Photo Planting Harvest Activity]
if allowed_commentables.include?(model_name)
return model_name.constantize.find_by(id: value)
end
end
end
nil
end
def comment_params
params.require(:comment).permit(:body, :post_id)
params.require(:comment).permit(:body) # Removed post_id
end
end

View File

@@ -0,0 +1,87 @@
# frozen_string_literal: true
class GardenCollaboratorsController < ApplicationController
before_action :authenticate_member!, except: %i(index show)
before_action :load_garden
load_and_authorize_resource id_param: :slug
respond_to :html
responders :flash
def index
@garden_collaborators = @garden.garden_collaborators.paginate(page: params[:page])
respond_with(@garden_collaborators)
end
def show
@garden_collaborator = GardenCollaborator.find(params[:garden_collaborator_id])
respond_with(@garden_collaborator)
end
def new
@garden_collaborator = GardenCollaborator.new(garden: @garden)
authorize! :create, @garden_collaborator
respond_with(@garden_collaborator)
end
def edit
@garden_collaborator = GardenCollaborator.find(params[:id])
authorize! :update, @garden_collaborator
respond_with(@garden_collaborator)
end
def create
@garden_collaborator = GardenCollaborator.new(garden: @garden)
authorize! :create, @garden_collaborator
@member = Member.find_by(slug: params[:garden_collaborator][:member_slug])
@garden_collaborator.member = @member
if @garden_collaborator.save
redirect_to garden_garden_collaborators_path(@garden)
else
respond_with(@garden_collaborator)
end
end
def update
@garden_collaborator = GardenCollaborator.find(params[:id])
authorize! :update, @garden_collaborator
@member = Member.find_by(slug: params[:garden_collaborator][:member_slug])
@garden_collaborator.member = @member
@garden_collaborator.save
respond_with(@garden_collaborator)
end
def destroy
@garden_collaborator = GardenCollaborator.find(params[:id])
authorize! :destroy, @garden_collaborator
if @garden_collaborator.destroy
redirect_to garden_garden_collaborators_path(@garden)
else
respond_with(@garden_collaborator)
end
end
private
def load_garden
@garden = Garden.find_by(slug: params[:garden_slug])
end
def garden_collaborator_params
params.require(:garden_collaborator).permit(
:member_slug
)
end
end

View File

@@ -8,7 +8,10 @@ class GardensController < DataController
@gardens = @gardens.includes(:owner)
@gardens = @gardens.active unless @show_all
@gardens = @gardens.where(owner: @owner) if @owner.present?
if @owner.present?
@gardens = @gardens.left_joins(:garden_collaborators)
@gardens = @gardens.where(owner: @owner).or(@gardens.where(garden_collaborators: { member: @owner }))
end
@gardens = @gardens.where.not(members: { confirmed_at: nil })
.order(:name).paginate(page: params[:page])
respond_with(@gardens)

View File

@@ -32,6 +32,9 @@ class HarvestsController < DataController
end
def show
# @harvest is loaded by load_and_authorize_resource.
# We need to ensure comments are eager-loaded.
@harvest = Harvest.includes(comments: :author).find(params[:id])
@matching_plantings = matching_plantings if @harvest.owner == current_member
@photos = @harvest.photos.order(created_at: :desc).paginate(page: params[:page])
respond_with(@harvest)

View File

@@ -20,6 +20,9 @@ class PhotosController < ApplicationController
end
def show
# @photo is loaded by load_and_authorize_resource.
# We need to ensure comments are eager-loaded.
@photo = Photo.includes(comments: :author).find(params[:id])
@crops = Crop.distinct.joins(:photo_associations).where(photo_associations: { photo: @photo })
respond_with(@photo)
end

View File

@@ -34,6 +34,9 @@ class PlantingsController < DataController
end
def show
# @planting is loaded by load_and_authorize_resource.
# We need to ensure comments are eager-loaded.
@planting = Planting.includes(comments: :author).find(params[:id])
@photos = @planting.photos.includes(:owner).order(date_taken: :desc)
@harvests = Harvest.search(where: { planting_id: @planting.id })
@current_activities = @planting.activities.current.includes(:owner).order(created_at: :desc)

View File

@@ -28,12 +28,6 @@ module ApplicationHelper
"#{klass.name.downcase.pluralize}/#{identifier}-#{count}-#{max_updated_at}"
end
def required_field_help_text
asterisk = tag.span('*', class: ['red'])
text = tag.em('denotes a required field')
tag.div(asterisk + ' '.html_safe + text, class: ['margin-bottom'])
end
# A helper to replace the complex template compilation mess
# of HAML, Tilt, and dynamic compilation with interpolated ruby.
def markdownify(text)

View File

@@ -13,7 +13,7 @@ module AutoSuggestHelper
resource = resource.class.name.downcase
source_path = Rails.application.routes.url_helpers.send("search_#{source}s_path", format: :json)
%(
<input id="#{source}" class="auto-suggest #{options[:class]}"
<input id="#{source}" class="auto-suggest #{options[:class]}" #{options[:required] ? 'required="required"' : ''}
type="text" value="#{default}" data-source-url="#{source_path}",
placeholder="e.g. lettuce">
<noscript class="text-warning">

View File

@@ -98,7 +98,19 @@ class Ability
can :destroy, Like, member_id: member.id
can :create, Comment
can :update, Comment, author_id: member.id
can :destroy, Comment, author_id: member.id
can :destroy, Comment do |comment|
is_author = comment.author_id == member.id
is_commentable_owner = false
if comment.commentable.present?
if comment.commentable.respond_to?(:owner_id) && comment.commentable.owner_id == member.id
is_commentable_owner = true
# Posts use author_id for their "owner"
elsif comment.commentable.respond_to?(:author_id) && comment.commentable.author_id == member.id
is_commentable_owner = true
end
end
is_author || is_commentable_owner
end
# same deal for gardens and plantings
can :create, Garden
@@ -108,16 +120,38 @@ class Ability
can :create, Planting
can :update, Planting, garden: { owner_id: member.id }, crop: { approval_status: 'approved' }
can :destroy, Planting, garden: { owner_id: member.id }, crop: { approval_status: 'approved' }
can :update, Planting do |planting|
planting.garden.garden_collaborators.where(member_id: member.id).any?
end
can :destroy, Planting do |planting|
planting.garden.garden_collaborators.where(member_id: member.id).any?
end
can :create, GardenCollaborator, garden: { owner_id: member.id }
can :update, GardenCollaborator, garden: { owner_id: member.id }
can :destroy, GardenCollaborator, garden: { owner_id: member.id }
can :create, Activity
can :update, Activity, owner_id: member.id
can :destroy, Activity, owner_id: member.id
can :update, Activity do |activity|
activity.garden&.garden_collaborators&.where(member_id: member.id)&.any?
end
can :destroy, Activity do |activity|
activity.garden&.garden_collaborators&.where(member_id: member.id)&.any?
end
can :create, Harvest
can :update, Harvest, owner_id: member.id
can :destroy, Harvest, owner_id: member.id
can :update, Harvest, owner_id: member.id, planting: { owner_id: member.id }
can :destroy, Harvest, owner_id: member.id, planting: { owner_id: member.id }
can :update, Harvest do |harvest|
harvest.planting&.garden&.garden_collaborators&.where(member_id: member.id)&.any?
end
can :destroy, Harvest do |harvest|
harvest.planting&.garden&.garden_collaborators&.where(member_id: member.id)&.any?
end
can :create, Photo
can :update, Photo, owner_id: member.id

View File

@@ -2,26 +2,31 @@
class Comment < ApplicationRecord
belongs_to :author, class_name: 'Member', inverse_of: :comments
belongs_to :post, counter_cache: true
belongs_to :commentable, polymorphic: true, counter_cache: true
scope :post_order, -> { order(created_at: :asc) } # for display on post page
after_create do
recipient = post.author.id
recipient = if commentable.respond_to?(:author)
commentable.author.id
elsif commentable.respond_to?(:owner)
commentable.owner.id
end
sender = author.id
# don't send notifications to yourself
if recipient != sender
if recipient && recipient != sender
Notification.create(
recipient_id: recipient,
sender_id: sender,
subject: "#{author} commented on #{post.subject}",
subject: "#{author} commented on your #{commentable.class.name.downcase}",
body:,
post_id: post.id
commentable_id: commentable.id,
commentable_type: commentable.class.name
)
end
end
def to_s
"#{author.login_name} commented on #{post.subject}"
"#{author.login_name} commented on #{commentable.class.name.downcase} ##{commentable.id}"
end
end

View File

@@ -30,6 +30,7 @@ module SearchPlantings
quantity:,
sunniness:,
garden_id:,
garden_slug: garden&.garden_slug,
garden_name: garden&.name,
description:,

View File

@@ -10,6 +10,7 @@ class Garden < ApplicationRecord
has_many :plantings, dependent: :destroy
has_many :crops, through: :plantings
has_many :activities, dependent: :destroy
has_many :garden_collaborators, dependent: :destroy
belongs_to :garden_type, optional: true

View File

@@ -0,0 +1,24 @@
# frozen_string_literal: true
class GardenCollaborator < ApplicationRecord
belongs_to :member
belongs_to :garden
validates :member_id, uniqueness: { scope: :garden }
validate :not_garden_owner
def not_garden_owner
return unless member
return unless garden
errors.add(:member_id, "cannot be the garden owner") if garden.owner == member
end
def member_slug
@member&.slug
end
def member_slug=(_slug)
member_slug
end
end

View File

@@ -153,7 +153,10 @@ class Harvest < ApplicationRecord
def owner_must_match_planting
return if planting.blank? # only check if we are linked to a planting
errors.add(:owner, "of harvest must be the same as planting") unless owner == planting.owner
return if owner == planting.owner || planting.garden.garden_collaborators.where(member_id: owner).any?
errors.add(:owner,
"of harvest must be the same as planting, or a collaborator on that garden")
end
def harvest_must_be_after_planting

View File

@@ -3,7 +3,7 @@
class Notification < ApplicationRecord
belongs_to :sender, class_name: 'Member', inverse_of: :sent_notifications
belongs_to :recipient, class_name: 'Member', inverse_of: :notifications
belongs_to :post, optional: true
belongs_to :commentable, polymorphic: true, optional: true
validates :subject, length: { maximum: 255 }

View File

@@ -61,6 +61,7 @@ class Planting < ApplicationRecord
to: :crop, prefix: true
delegate :login_name, :slug, :location, to: :owner, prefix: true
delegate :slug, to: :planting, prefix: true
delegate :slug, :name, to: :garden, prefix: true
delegate :annual?, :perennial?, :svg_icon, to: :crop
delegate :location, :longitude, :latitude, to: :garden
@@ -127,6 +128,9 @@ class Planting < ApplicationRecord
end
def owner_must_match_garden_owner
errors.add(:owner, "must be the same as garden") unless owner == garden.owner
return if owner == garden.owner || garden.garden_collaborators.where(member_id: owner).any?
errors.add(:owner,
"must be the same as garden, or a collaborator on that garden")
end
end

View File

@@ -6,7 +6,6 @@
%strong=yield :title
= bootstrap_form_for(@activity) do |f|
.card-body
= required_field_help_text
- if @activity.errors.any?
#error_explanation
%h2
@@ -40,9 +39,9 @@
= link_to "Add a planting.", new_planting_path
.col-md-4
= f.text_field :due_date,
= f.date_field :due_date,
value: @activity.due_date ? @activity.due_date.to_fs(:ymd) : '',
class: 'add-datepicker', label: 'When?'
label: 'When?'
%hr

View File

@@ -44,5 +44,8 @@
%a{name: 'plantings'}
= render 'plantings/card', planting: @activity.planting
%section.comments.mt-4
= render 'comments/comments', commentable: @activity
.col-md-4.col-xs-12

View File

@@ -0,0 +1,21 @@
.comments-section.mt-4
%h4.mb-3 Comments
- if commentable.comments.any?
.list-group
- commentable.comments.post_order.each do |comment|
.list-group-item.p-0.mb-2.border-0
= render 'comments/comment', comment: comment
- else
%p No comments yet.
- if can? :create, Comment # Assuming a general ability to create comments
.mt-3
= link_to "Add Comment", new_polymorphic_path([commentable, Comment.new]), class: 'btn btn-primary'
%hr/
-# This section is for rendering the new/edit form directly on the page if needed,
-# but the primary "Add Comment" link above goes to the comments/new page.
-# If @new_comment is passed, it means we want to show the form.
- if defined?(@new_comment) && @new_comment && can?(:create, Comment) # Check @new_comment specifically
%h5.mt-3 Leave a comment
= render 'comments/form', commentable: commentable, comment: @new_comment

View File

@@ -3,14 +3,14 @@
- if content_for? :title
%h1.h2-responsive.text-center
%strong=yield :title
= form_for(@comment, html: { class: "form-horizontal" }) do |f|
- if @comment.errors.any?
= form_for(commentable ? [commentable, comment] : comment, html: { class: "form-horizontal" }) do |f|
- if comment.errors.any?
#error_explanation
%h2
= pluralize(@comment.errors.size, "error")
= pluralize(comment.errors.size, "error")
prohibited this comment from being saved:
%ul
- @comment.errors.full_messages.each do |msg|
- comment.errors.full_messages.each do |msg|
%li= msg
.md-form
@@ -21,6 +21,3 @@
= render partial: "shared/markdown_help"
.actions.text-right
= f.submit 'Post comment', class: 'btn btn-primary'
- if defined?(@post)
.field
= f.hidden_field :post_id, value: @post.id

View File

@@ -1,7 +1,2 @@
= content_for :title, "Editing comment"
%p
Editing comment on
= link_to @comment.post.subject, @comment.post
= render 'form'
%h2 Edit Comment
= render 'comments/form', commentable: @comment.commentable, comment: @comment

View File

@@ -1,11 +1,5 @@
= content_for :title, "New comment"
%h2
Add comment to
= @commentable.class.name.downcase
%section.blog-post
.card.post{ id: "post-#{@post.id}" }
.card-header
%h2.display-3= @post.subject
.card-body= render "posts/single", post: @post || @comment.post, subject: true
= render partial: "posts/comments", locals: { post: @post || @comment.post }
= render 'form'
= render 'comments/form', commentable: @commentable, comment: @comment

View File

@@ -0,0 +1,18 @@
.card.col-md-8.col-lg-7.mx-auto.float-none.white.z-depth-1.py-2.px-2
= bootstrap_form_for(@garden_collaborator.new_record? ? [@garden, @garden_collaborator] : garden_garden_collaborator_path(@garden, @garden_collaborator)) do |f|
.card-body
- if @garden_collaborator.errors.any?
#error_explanation.alert.alert-warning{:role => "alert"}
%h4.alert-heading
= pluralize(@garden_collaborator.errors.size, "error")
prohibited this garden collaborator from being saved
%ul
- @garden_collaborator.errors.full_messages.each do |msg|
%li= msg
.alert.alert-info
Ask your friend, family member or community garden member for their growstuff username to add them as a collaborator on your garden.
= f.text_field :member_slug, maxlength: 255, required: true
.row
.card-footer
.text-right= f.submit 'Save Collaboator'

View File

@@ -0,0 +1,3 @@
- content_for :title, "Edit garden collaborator"
= render 'form'

View File

@@ -0,0 +1,72 @@
- content_for :title, "#{@garden} collaborators"
%h1= "#{@garden} collaborators"
- content_for :breadcrumbs do
%li.breadcrumb-item= link_to 'Gardens', gardens_path
%li.breadcrumb-item.active= link_to @garden, gardens_path(@garden)
.row
.col-md-2
- if current_member.present?
.flex-column.nav-pills.layout-nav{"role" => "tablist", "aria-orientation"=>"vertical"}
- if can?(:create, GardenCollaborator.new(garden: @garden))
= link_to url_for([@garden, GardenCollaborator.new(garden: @garden), action: :new]), class: 'btn' do
Add a #{GardenCollaborator.new(garden: @garden).model_name.human}
- else
= render 'shared/signin_signup', to: "record your #{model.to_s.pluralize.downcase}"
%hr/
%p.text-center
#{ENV['GROWSTUFF_SITE_NAME']} helps you track what you're
harvesting from your home garden and see how productive it is.
.col-md-10
- if @garden_collaborators.empty?
%p There are no collaborators to display.
- if can?(:create, GardenCollaborator) && @owner == current_member
= link_to 'Add a garden collaborator', new_garden_garden_collaborator_path, class: 'btn btn-primary'
- else
%section
%h2= page_entries_info @garden_collaborators
= will_paginate @garden_collaborators
- @garden_collaborators.each do |garden_collaborator|
- member = garden_collaborator.member
- cache member do
.card
.card-body
- if can?(:destroy, garden_collaborator)
%div{"style": "float: right"}
= link_to garden_garden_collaborator_path(@garden, garden_collaborator), method: :delete, class: "btn btn-danger" do
Remove access
%h4.login-name= link_to member, member
%div
= render "members/avatar", member: member
%div
= link_to "view all #{member}'s gardens", member_gardens_path(member)
%p
%small
Joined
= distance_of_time_in_words(member.created_at, Time.zone.now)
ago.
- if member.location.present?
= link_to member.location, place_path(member.location)
.card-footer
%ul.nav.nav-justified.small
%li.nav-item.border-right
= link_to member_plantings_path(member) do
= localize_plural(member.plantings.active, Planting)
%li.nav-item.border-right
= link_to member_harvests_path(member) do
= localize_plural(member.harvests, Harvest)
%li.nav-item
= link_to member_seeds_path(member) do
= localize_plural(member.seeds.active, Seed)
.row
.col-12= page_entries_info @garden_collaborators
.col-12= will_paginate @garden_collaborators

View File

@@ -0,0 +1,3 @@
- content_for :title, "New garden collaborator"
= render 'form'

View File

View File

@@ -5,7 +5,6 @@
%h1.h2-responsive.text-center
%strong=yield :title
.card-body
= required_field_help_text
- if @garden.errors.any?
#error_explanation.alert.alert-warning{:role => "alert"}
%h4.alert-heading
@@ -16,7 +15,7 @@
%li= msg
= f.text_field :name, maxlength: 255, required: true
= f.text_area :description, rows: 6
= f.text_area :description, rows: 6, placeholder: "Tell us about this garden - where is it located? What does it look like? Do you have a link to a photo? Do you have irrigation? What are your plans?"
= f.text_field :location,
value: @garden.location || current_member.location,
class: 'form-control', maxlength: 255
@@ -27,7 +26,7 @@
- else
= link_to "Change your location.", edit_member_registration_path
.row
.col-md-5.col-12= f.number_field :area, class: 'input-small', step: "any"
.col-md-5.col-12= f.number_field :area, class: 'input-small', step: "any", min: 0
.col-md-7.col-12= f.select(:area_unit, Garden::AREA_UNITS_VALUES, { include_blank: false })
.col-12= f.select(:garden_type_id, GardenType.all.order(:name).pluck(:name, :id),
selected: @garden.garden_type_id, include_blank: true)

View File

@@ -31,7 +31,7 @@
%p
:markdown
#{strip_tags markdownify(@garden.description)}
- unless @garden.description
- unless @garden.description.present?
.row-fluid
%p No description available yet.
@@ -39,8 +39,13 @@
%p
Why not
= link_to 'tell us more.', edit_garden_path(@garden)
- else
- if can? :edit, @garden
%p
Did you want to
= link_to 'update this description.', edit_garden_path(@garden)
- if @garden.plantings.where.not(planted_at: nil).any?
- if @garden.plantings.active.any?
%section.card
%h2 Garden progress
.card-body
@@ -55,6 +60,14 @@
- else
.col-md-12
%p Nothing is currently planted here.
- if can?(:edit, @garden)
.col-md-12
= garden_plant_something_button(@garden)
- if can?(:destroy, @garden)
.dropdown-divider
= delete_button(@garden, classes: 'dropdown-item text-danger',
message: 'All plantings associated with this garden will also be deleted. Are you sure?')
%section
%h2 Current activities in garden
@@ -65,6 +78,9 @@
- else
.col-md-12
%p Nothing is currently planned here.
- if can?(:edit, @garden)
.col-md-12
= garden_plan_something_button(@garden)
- if @suggested_companions.any?
%section.companions
@@ -83,6 +99,17 @@
%p
%strong Owner:
= link_to @garden.owner, @garden.owner
%p
%strong Collaborators:
- if can?(:create, GardenCollaborator.new(garden: @garden))
= link_to "Manage", garden_garden_collaborators_path(@garden)
- if @garden.garden_collaborators.any?
%ul
- @garden.garden_collaborators.each do |collabator|
%li= link_to collabator.member, collabator.member
- else
None
- if @garden.location.present?
%p
%strong Location:

View File

@@ -7,7 +7,6 @@
= harvest_icon
%strong=yield :title
.card-body
= required_field_help_text
- if @harvest.errors.any?
#error_explanation
%h2 #{pluralize(@harvest.errors.size, "error")} prohibited this harvest from being saved:"
@@ -31,8 +30,7 @@
= link_to "Request new crops.", new_crop_path
.col-md-4
= f.text_field :harvested_at, value: @harvest.harvested_at ? @harvest.harvested_at.to_fs(:ymd) : '',
class: 'add-datepicker', label: 'When?'
= f.date_field :harvested_at, value: @harvest.harvested_at ? @harvest.harvested_at.to_fs(:ymd) : '', label: 'When?'
.col-12
= f.form_group :plant_part_id, label: { text: "Harvested Plant Part" } do
.row
@@ -44,7 +42,7 @@
-# http://blog.isotoma.com/2012/03/html5-input-typenumber-and-decimalsfloats-in-chrome/
.row
.col-md-4
= f.number_field :quantity, class: 'input-small form-control', step: 'any', label: 'How many?'
= f.number_field :quantity, class: 'input-small form-control', step: 'any', label: 'How many?', min: 1
.col-md-8
= f.select(:unit, Harvest::UNITS_VALUES, { include_blank: false }, class: 'input-medium form-control')
.row

View File

@@ -66,5 +66,8 @@
Havested from
= link_to @harvest.planting, @harvest.planting
%section.comments.mt-4
= render 'comments/comments', commentable: @harvest
.col-md-4.col-xs-12
= render @harvest.crop

View File

@@ -46,4 +46,8 @@
- else
= @photo.license_name
= render "associations", photo: @photo
= render "associations", photo: @photo
.row
.col-md-9
= render 'comments/comments', commentable: @photo

View File

@@ -31,7 +31,10 @@
.text-center= render 'plantings/badges', planting: planting
= render 'plantings/progress', planting: planting
.card-footer
.float-right
%span.chip.member-chip
= link_to member_path(slug: planting.owner_slug) do
= planting.owner_login_name
%small
Planted by
= link_to member_path(slug: planting.owner_slug), class: "owner-link" do
= planting.owner_login_name
in
= link_to garden_path(slug: planting.garden_slug), class: "garden-link" do
= planting.garden_name

View File

@@ -6,7 +6,6 @@
%strong=yield :title
= bootstrap_form_for(@planting) do |f|
.card-body
= required_field_help_text
- if @planting.errors.any?
#error_explanation
%h2
@@ -45,7 +44,7 @@
.col-md-4
= f.select(:sunniness, Planting::SUNNINESS_VALUES, { include_blank: '', label: 'Sun or shade?' } )
.col-md-4
= f.number_field :quantity, label: 'How many?'
= f.number_field :quantity, label: 'How many?', min: 1
= f.text_area :description, rows: 6, label: 'Tell us more about it'
.row

View File

@@ -79,6 +79,9 @@
.col-md-12
%p Nothing is currently planned here.
%section.comments.mt-4
= render 'comments/comments', commentable: @planting
.col-md-4.col-xs-12
= render @planting.crop

View File

@@ -22,10 +22,6 @@
= render "shared/signin_signup",
to: "or to start using #{ENV['GROWSTUFF_SITE_NAME']} to track what you're planting and harvesting"
- content_for :buttonbar do
- if @post.comments.count > 10 && can?(:create, Comment)
= link_to 'Comment', new_comment_path(post_id: @post.id), class: 'btn'
- content_for :breadcrumbs do
%li.breadcrumb-item= link_to @post.author, @post.author
%li.breadcrumb-item= link_to 'posts', member_posts_path(member_slug: @post.author.slug)
@@ -47,13 +43,10 @@
.card-footer
= render 'likes/likes', object: @post
.float-right
- if can? :create, Comment
= link_to new_comment_path(post_id: @post.id), class: 'btn' do
= icon 'fas', 'comment'
Comment
-# Link removed as it's now part of the _comments partial
%section.comments
= render "comments", post: @post
= render 'comments/comments', commentable: @post
.col-md-4.col-12
= render @post.author

View File

@@ -14,7 +14,6 @@
%ul
- @seed.errors.full_messages.each do |msg|
%li= msg
= required_field_help_text
.form-group.required
= f.label :crop, 'Crop'
@@ -23,7 +22,7 @@
= f.hidden_field :parent_planting_id, value: @planting.id
- else
= auto_suggest @seed, :crop, class: 'form-control', default: @crop
= auto_suggest @seed, :crop, class: 'form-control', default: @crop, required: true
%span.help-inline
Can't find what you're looking for?
= link_to "Request new crops.", new_crop_path
@@ -32,7 +31,7 @@
= f.text_field :saved_at,
value: @seed.saved_at ? @seed.saved_at.to_fs(:ymd) : '',
class: 'add-datepicker', label: 'When were the seeds harvested/saved?'
.col-12.col-md-4= f.number_field :quantity, label: 'Quantity'
.col-12.col-md-4= f.number_field :quantity, label: 'Quantity', min: 1
.col-12.col-md-4
= f.text_field :plant_before, class: 'add-datepicker',
value: @seed.plant_before ? @seed.plant_before.to_fs(:ymd) : ''
@@ -46,21 +45,21 @@
%span.help-inline= t('.finish_helper')
.row
.col-md-6= f.number_field :days_until_maturity_min, label_as_placeholder: true, label: 'min', prepend: 'Days until maturity'
.col-md-6= f.number_field :days_until_maturity_max, label_as_placeholder: true, label: 'max', prepend: 'to', append: "days"
.col-md-6= f.number_field :days_until_maturity_min, label_as_placeholder: true, label: 'min', prepend: 'Days until maturity', min: 1
.col-md-6= f.number_field :days_until_maturity_max, label_as_placeholder: true, label: 'max', prepend: 'to', append: "days", min: 1
.row
.col-md-4
= f.select(:organic, Seed::ORGANIC_VALUES, {label: 'Organic?', wrapper: { class: 'required'}}, default: 'unknown', required: true)
= f.select(:organic, Seed::ORGANIC_VALUES, {label: 'Organic?', wrapper: { class: 'required'}, required: true}, default: 'unknown')
.col-md-4
= f.select(:gmo, Seed::GMO_VALUES, {label: 'GMO?', wrapper: { class: 'required'}}, default: 'unknown', required: true)
= f.select(:gmo, Seed::GMO_VALUES, {label: 'GMO?', wrapper: { class: 'required'}, required: true}, default: 'unknown')
.col-md-4
= f.select(:heirloom, Seed::HEIRLOOM_VALUES, {label: 'Heirloom?', wrapper: { class: 'required'}}, default: 'unknown', required: true)
= f.select(:heirloom, Seed::HEIRLOOM_VALUES, {label: 'Heirloom?', wrapper: { class: 'required'}, required: true}, default: 'unknown')
= f.text_area :description, rows: 6
%hr/
= t('.trade_help', site_name: ENV['GROWSTUFF_SITE_NAME'])
= f.select(:tradable_to, Seed::TRADABLE_TO_VALUES, {label: 'Will trade', wrapper: { class: 'required'}})
= f.select(:tradable_to, Seed::TRADABLE_TO_VALUES, {label: 'Will trade', wrapper: { class: 'required'}, required: true})
%span.help_inline
- if current_member.location.blank?
Don't forget to

View File

@@ -5,7 +5,6 @@
= edit_icon
.hide{id: "date--#{model.id}-#{field.to_s}"}
= bootstrap_form_for(model) do |f|
= f.text_field field,
value: model.send(field) ? model.send(field).to_fs(:ymd) : '',
class: 'add-datepicker', label: 'When?'
= f.date_field field,
value: model.send(field) ? model.send(field).to_fs(:ymd) : '', label: 'When?'
= f.submit :save

View File

@@ -12,7 +12,6 @@
- elsif field_type == :select
= f.select field, collection
- elsif field_type == :date
= f.text_field field,
value: model.send(field) ? model.send(field).to_fs(:ymd) : '',
class: 'add-datepicker', label: 'When?'
= f.date_field field,
value: model.send(field) ? model.send(field).to_fs(:ymd) : '', label: 'When?'
= f.submit :save

View File

@@ -28,11 +28,17 @@ Rails.application.routes.draw do
resources :photos, only: :index
end
resources :gardens, concerns: :has_photos, param: :slug do
get 'timeline' => 'charts/gardens#timeline', constraints: { format: 'json' }
concern :commentable do
resources :comments, only: [:new, :create, :edit, :update, :destroy], shallow: true
end
resources :plantings, concerns: :has_photos, param: :slug do
resources :gardens, concerns: :has_photos, param: :slug do
get 'timeline' => 'charts/gardens#timeline', constraints: { format: 'json' }
resources :garden_collaborators
end
resources :plantings, concerns: [:has_photos, :commentable], param: :slug do
resources :harvests
resources :seeds
collection do
@@ -45,11 +51,11 @@ Rails.application.routes.draw do
get 'crop/:crop' => 'seeds#index', as: 'seeds_by_crop', on: :collection
end
resources :harvests, concerns: :has_photos, param: :slug do
resources :harvests, concerns: [:has_photos, :commentable], param: :slug do
get 'crop/:crop' => 'harvests#index', as: 'harvests_by_crop', on: :collection
end
resources :posts do
resources :posts, concerns: :commentable do
get 'author/:author' => 'posts#index', as: 'by_author', on: :collection
end
@@ -60,7 +66,7 @@ Rails.application.routes.draw do
end
resources :alternate_names
resources :plant_parts
resources :photos
resources :photos, concerns: :commentable
resources :photo_associations, only: :destroy
@@ -110,7 +116,7 @@ Rails.application.routes.draw do
end
resources :messages
resources :activities, param: :slug
resources :activities, concerns: :commentable, param: :slug
resources :conversations do
collection do
delete 'destroy_multiple'

View File

@@ -0,0 +1,32 @@
class AddCommentableToComments < ActiveRecord::Migration[6.0]
def up
add_column :comments, :commentable_id, :integer
add_column :comments, :commentable_type, :string
add_index :comments, [:commentable_type, :commentable_id]
# Data migration
execute <<-SQL
UPDATE comments
SET commentable_id = post_id,
commentable_type = 'Post'
WHERE post_id IS NOT NULL;
SQL
remove_column :comments, :post_id
end
def down
add_column :comments, :post_id, :integer
# Data migration back
execute <<-SQL
UPDATE comments
SET post_id = commentable_id
WHERE commentable_type = 'Post';
SQL
remove_index :comments, [:commentable_type, :commentable_id]
remove_column :comments, :commentable_type
remove_column :comments, :commentable_id
end
end

View File

@@ -0,0 +1,10 @@
class CreateGardenCollaborators < ActiveRecord::Migration[7.2]
def change
create_table :garden_collaborators do |t|
t.references :member
t.references :garden
t.timestamps
t.index [:member_id, :garden_id], unique: true
end
end
end

View File

@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
ActiveRecord::Schema[7.2].define(version: 2024_09_29_041435) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -54,13 +54,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "slug"
t.integer "cached_votes_total", default: 0
t.integer "cached_votes_score", default: 0
t.integer "cached_votes_up", default: 0
t.integer "cached_votes_down", default: 0
t.integer "cached_weighted_score", default: 0
t.integer "cached_weighted_total", default: 0
t.float "cached_weighted_average", default: 0.0
t.integer "likes_count", default: 0
t.index ["garden_id"], name: "index_activities_on_garden_id"
t.index ["owner_id"], name: "index_activities_on_owner_id"
@@ -214,13 +207,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
t.text "body", null: false
t.datetime "created_at", precision: nil
t.datetime "updated_at", precision: nil
t.integer "cached_votes_total", default: 0
t.integer "cached_votes_score", default: 0
t.integer "cached_votes_up", default: 0
t.integer "cached_votes_down", default: 0
t.integer "cached_weighted_score", default: 0
t.integer "cached_weighted_total", default: 0
t.float "cached_weighted_average", default: 0.0
end
create_table "crop_companions", force: :cascade do |t|
@@ -280,6 +266,16 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
t.index ["slug"], name: "index_forums_on_slug", unique: true
end
create_table "garden_collaborators", force: :cascade do |t|
t.bigint "member_id"
t.bigint "garden_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["garden_id"], name: "index_garden_collaborators_on_garden_id"
t.index ["member_id", "garden_id"], name: "index_garden_collaborators_on_member_id_and_garden_id", unique: true
t.index ["member_id"], name: "index_garden_collaborators_on_member_id"
end
create_table "garden_types", force: :cascade do |t|
t.text "name", null: false
t.text "slug", null: false
@@ -504,13 +500,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
t.datetime "date_taken", precision: nil
t.integer "likes_count", default: 0
t.string "source"
t.integer "cached_votes_total", default: 0
t.integer "cached_votes_score", default: 0
t.integer "cached_votes_up", default: 0
t.integer "cached_votes_down", default: 0
t.integer "cached_weighted_score", default: 0
t.integer "cached_weighted_total", default: 0
t.float "cached_weighted_average", default: 0.0
t.index ["fullsize_url"], name: "index_photos_on_fullsize_url", unique: true
t.index ["thumbnail_url"], name: "index_photos_on_thumbnail_url", unique: true
end
@@ -553,13 +542,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
t.integer "days_to_last_harvest"
t.integer "parent_seed_id"
t.integer "harvests_count", default: 0
t.integer "cached_votes_total", default: 0
t.integer "cached_votes_score", default: 0
t.integer "cached_votes_up", default: 0
t.integer "cached_votes_down", default: 0
t.integer "cached_weighted_score", default: 0
t.integer "cached_weighted_total", default: 0
t.float "cached_weighted_average", default: 0.0
t.integer "likes_count", default: 0
t.index ["slug"], name: "index_plantings_on_slug", unique: true
end
@@ -574,13 +556,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
t.integer "forum_id"
t.integer "likes_count", default: 0
t.integer "comments_count", default: 0
t.integer "cached_votes_total", default: 0
t.integer "cached_votes_score", default: 0
t.integer "cached_votes_up", default: 0
t.integer "cached_votes_down", default: 0
t.integer "cached_weighted_score", default: 0
t.integer "cached_weighted_total", default: 0
t.float "cached_weighted_average", default: 0.0
t.index ["created_at", "author_id"], name: "index_posts_on_created_at_and_author_id"
t.index ["slug"], name: "index_posts_on_slug", unique: true
end
@@ -628,22 +603,6 @@ ActiveRecord::Schema[7.1].define(version: 2024_07_14_024918) do
t.index ["slug"], name: "index_seeds_on_slug", unique: true
end
create_table "votes", force: :cascade do |t|
t.string "votable_type"
t.bigint "votable_id"
t.string "voter_type"
t.bigint "voter_id"
t.boolean "vote_flag"
t.string "vote_scope"
t.integer "vote_weight"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["votable_id", "votable_type", "vote_scope"], name: "index_votes_on_votable_id_and_votable_type_and_vote_scope"
t.index ["votable_type", "votable_id"], name: "index_votes_on_votable"
t.index ["voter_id", "voter_type", "vote_scope"], name: "index_votes_on_voter_id_and_voter_type_and_vote_scope"
t.index ["voter_type", "voter_id"], name: "index_votes_on_voter"
end
add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id"
add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id"
add_foreign_key "harvests", "plantings"

View File

@@ -31,95 +31,316 @@ describe CommentsController do
end
end
describe "GET new" do
let(:post) { FactoryBot.create(:post) }
describe "with valid params" do
before { get :new, params: { post_id: post.id } }
let(:old_comment) { FactoryBot.create(:comment, post:) }
it "picks up post from params" do
expect(assigns(:post)).to eq(post)
end
it "assigns the old comments as @comments" do
expect(assigns(:comments)).to eq [old_comment]
# Shared examples for commentable controllers
RSpec.shared_examples "a commentable controller" do |commentable_factory_name, commentable_param_key|
let(:commentable_owner) { FactoryBot.create(:member) }
let(:comment_author) { FactoryBot.create(:member) }
let(:admin_user) { FactoryBot.create(:member, :admin) }
let!(:commentable) do
if [:post].include?(commentable_factory_name)
FactoryBot.create(commentable_factory_name, author: commentable_owner)
else
FactoryBot.create(commentable_factory_name, owner: commentable_owner)
end
end
it "dies if no post specified" do
get :new
expect(response).not_to be_successful
end
end
describe "GET #new" do
context "when not logged in" do
before { sign_out member }
it "redirects to login" do
get :new, params: { commentable_param_key => commentable.id }
expect(response).to redirect_to(new_member_session_path)
end
end
describe "GET edit" do
let(:post) { FactoryBot.create(:post) }
context "when logged in" do
before { sign_in comment_author }
it "assigns @commentable and new @comment" do
get :new, params: { commentable_param_key => commentable.id }
expect(assigns(:commentable)).to eq(commentable)
expect(assigns(:comment)).to be_a_new(Comment)
expect(response).to render_template(:new)
end
before { get :edit, params: { id: comment.to_param } }
describe "my comment" do
let!(:comment) { FactoryBot.create(:comment, author: member, post:) }
let!(:old_comment) { FactoryBot.create(:comment, post:, created_at: Time.zone.yesterday) }
it "assigns previous comments as @comments" do
expect(assigns(:comments)).to eq([comment, old_comment])
it "redirects if commentable not found" do
get :new, params: { commentable_param_key => -1 }
expect(response).to redirect_to(request.referer || root_url)
expect(flash[:alert]).to match(/Cannot add a comment to a non-existent or unspecified item/)
end
end
end
describe "not my comment" do
let(:comment) { FactoryBot.create(:comment, post:) }
describe "POST #create" do
let(:valid_comment_params) { { body: "This is a great comment." } }
let(:invalid_comment_params) { { body: "" } }
it { expect(response).not_to be_successful }
end
end
context "when not logged in" do
before { sign_out member }
it "redirects to login" do
post :create, params: { commentable_param_key => commentable.id, comment: valid_comment_params }
expect(response).to redirect_to(new_member_session_path)
end
end
describe "PUT update" do
before { put :update, params: { id: comment.to_param, comment: valid_attributes } }
context "when logged in" do
before { sign_in comment_author }
describe "my comment" do
let(:comment) { FactoryBot.create(:comment, author: member) }
context "with valid params" do
it "creates a new Comment" do
expect {
post :create, params: { commentable_param_key => commentable.id, comment: valid_comment_params }
}.to change(Comment, :count).by(1)
end
it "redirects to the comment's post" do
expect(response).to redirect_to(comment.post)
it "assigns the comment's author to current_member" do
post :create, params: { commentable_param_key => commentable.id, comment: valid_comment_params }
expect(Comment.last.author).to eq(comment_author)
end
it "redirects to the commentable's show page" do
post :create, params: { commentable_param_key => commentable.id, comment: valid_comment_params }
expect(response).to redirect_to(commentable)
end
end
context "with invalid params" do
it "does not create a comment" do
expect {
post :create, params: { commentable_param_key => commentable.id, comment: invalid_comment_params }
}.not_to change(Comment, :count)
end
it "re-renders the 'new' template (or commentable show with errors)" do
# The controller currently redirects if commentable is not found in create,
# but for invalid comment params, it should re-render or show errors.
# The current controller's create action saves and then responds.
# If save fails, it typically re-renders the form via respond_with.
# For this test, we'll assume it re-renders 'new' if save fails.
# A more precise test would check the response if @comment.save fails.
# For now, we'll check that it doesn't redirect to the commentable if save fails.
post :create, params: { commentable_param_key => commentable.id, comment: invalid_comment_params }
# Depending on how `respond_with` handles failure for new comment on commentable,
# it might render the commentable's show page or the comments/new template.
# The key is that it shouldn't be a successful redirect to the commentable.
# And @comment.errors should be present.
expect(assigns(:comment).errors).not_to be_empty
# Check for re-render of new or specific error handling view
# For now, checking that it's not a successful redirect if save fails.
# This might need adjustment based on actual controller error flow.
# A common pattern is to render the 'new' template again or the parent's show page.
# The `respond_with @comment, location: @comment.commentable` will try to redirect if valid.
# If invalid, it should re-render the action that led to the form.
# For `create` failing, it's often the `new` view or the parent resource's view.
# The controller has `respond_with @comment, location: @comment.commentable`.
# If `@comment` is not persisted, `respond_with` might render the `new` template by convention,
# or the template of the action (`create.js.erb` or `create.html.erb` if they exist).
# Given the setup, it's likely to re-render 'new' or the controller action's default.
# Let's assume for now the form is on the `new` page.
# This is a weak assertion. A better one would be to check for `render_template(:new)`
# if the controller is set up to do that on failure.
# However, `respond_with` is tricky. It might also render the `commentable` show page with errors.
# The `new` action in controller renders `respond_with(@comment)`.
# The `create` action has `respond_with @comment, location: @comment.commentable`.
# If `@comment.save` fails, `respond_with` will typically render the `new` template by default
# if `create.html.haml` doesn't exist, or it might try to render `commentable` show page
# with errors displayed by the form partial.
# Given the form is rendered via `comments/new`, let's assume it re-renders new.
# This part of the test may need refinement based on actual error rendering flow.
# A simple check: ensure it doesn't redirect to the commentable.
expect(response).not_to redirect_to(commentable_path(commentable))
# And that @commentable is still assigned for the form.
expect(assigns(:commentable)).to eq(commentable)
end
end
it "redirects if commentable not found" do
post :create, params: { commentable_param_key => -1, comment: valid_comment_params }
expect(response).to redirect_to(request.referer || root_url)
expect(flash[:alert]).to match(/Cannot create comment for a non-existent or unspecified item/)
end
end
end
describe "not my comment" do
let(:comment) { FactoryBot.create(:comment) }
describe "GET #edit" do
let!(:comment) { FactoryBot.create(:comment, commentable: commentable, author: comment_author) }
it { expect(response).not_to be_successful }
context "when not logged in" do
before { sign_out member }
it "redirects to login" do
get :edit, params: { id: comment.id }
expect(response).to redirect_to(new_member_session_path)
end
end
context "as comment author" do
before { sign_in comment_author }
it "assigns @comment and renders edit" do
get :edit, params: { id: comment.id }
expect(assigns(:comment)).to eq(comment)
expect(response).to render_template(:edit)
end
end
context "as admin" do
before { sign_in admin_user }
it "assigns @comment and renders edit" do
get :edit, params: { id: comment.id }
expect(assigns(:comment)).to eq(comment)
expect(response).to render_template(:edit)
end
end
context "as unauthorized user" do
let(:other_user) { FactoryBot.create(:member) }
before { sign_in other_user }
it "redirects or shows error" do
get :edit, params: { id: comment.id }
expect(response).to redirect_to(root_url) # Or some other unauthorized path
expect(flash[:alert]).to match(/You are not authorized to access this page./)
end
end
end
describe "attempting to change post_id" do
let(:post) { FactoryBot.create(:post, subject: 'our post') }
let(:other_post) { FactoryBot.create(:post, subject: 'the other post') }
let(:valid_attributes) { { post_id: other_post.id, body: "kōrero" } }
let(:comment) { FactoryBot.create(:comment, author: member, post:) }
describe "PUT #update" do
let!(:comment) { FactoryBot.create(:comment, commentable: commentable, author: comment_author, body: "Original body") }
let(:updated_body) { "Updated comment body." }
it "does not change post_id" do
comment.reload
expect(comment.post_id).to eq(post.id)
context "when not logged in" do
before { sign_out member }
it "redirects to login" do
put :update, params: { id: comment.id, comment: { body: updated_body } }
expect(response).to redirect_to(new_member_session_path)
end
end
context "as comment author" do
before { sign_in comment_author }
context "with valid params" do
it "updates the comment" do
put :update, params: { id: comment.id, comment: { body: updated_body } }
comment.reload
expect(comment.body).to eq(updated_body)
end
it "redirects to commentable show page" do
put :update, params: { id: comment.id, comment: { body: updated_body } }
expect(response).to redirect_to(commentable_path(commentable))
end
end
context "with invalid params (empty body)" do
it "does not update the comment and re-renders edit" do
put :update, params: { id: comment.id, comment: { body: "" } }
comment.reload
expect(comment.body).to eq("Original body") # Should not change
expect(response).to render_template(:edit)
end
end
end
context "as admin" do
before { sign_in admin_user }
it "updates the comment" do
put :update, params: { id: comment.id, comment: { body: updated_body } }
comment.reload
expect(comment.body).to eq(updated_body)
expect(response).to redirect_to(commentable_path(commentable))
end
end
context "as unauthorized user" do
let(:other_user) { FactoryBot.create(:member) }
before { sign_in other_user }
it "redirects or shows error" do
put :update, params: { id: comment.id, comment: { body: updated_body } }
expect(response).to redirect_to(root_url)
expect(flash[:alert]).to match(/You are not authorized to access this page./)
end
end
end
describe "DELETE #destroy" do
let!(:comment_to_delete) { FactoryBot.create(:comment, commentable: commentable, author: comment_author) }
context "when not logged in" do
before { sign_out member }
it "redirects to login" do
delete :destroy, params: { id: comment_to_delete.id }
expect(response).to redirect_to(new_member_session_path)
end
end
context "as comment author" do
before { sign_in comment_author }
it "deletes the comment" do
expect {
delete :destroy, params: { id: comment_to_delete.id }
}.to change(Comment, :count).by(-1)
end
it "redirects to commentable show page" do
delete :destroy, params: { id: comment_to_delete.id }
expect(response).to redirect_to(commentable_path(commentable))
end
end
context "as commentable owner" do
before { sign_in commentable_owner }
it "deletes the comment" do
# Ensure comment_author is not the same as commentable_owner for this test case
expect(comment_to_delete.author).not_to eq(commentable_owner)
expect {
delete :destroy, params: { id: comment_to_delete.id }
}.to change(Comment, :count).by(-1)
end
it "redirects to commentable show page" do
delete :destroy, params: { id: comment_to_delete.id }
expect(response).to redirect_to(commentable_path(commentable))
end
end
context "as admin" do
before { sign_in admin_user }
it "deletes the comment" do
expect {
delete :destroy, params: { id: comment_to_delete.id }
}.to change(Comment, :count).by(-1)
end
it "redirects to commentable show page" do
delete :destroy, params: { id: comment_to_delete.id }
expect(response).to redirect_to(commentable_path(commentable))
end
end
context "as unauthorized user" do
let(:other_user) { FactoryBot.create(:member) }
before { sign_in other_user }
it "does not delete the comment and redirects or shows error" do
expect {
delete :destroy, params: { id: comment_to_delete.id }
}.not_to change(Comment, :count)
expect(response).to redirect_to(root_url)
expect(flash[:alert]).to match(/You are not authorized to access this page./)
end
end
end
end
describe "DELETE destroy" do
before { delete :destroy, params: { id: comment.to_param } }
# Apply shared examples for each commentable type
context "for Post" do
it_behaves_like "a commentable controller", :post, :post_id
end
describe "my comment" do
let(:comment) { FactoryBot.create(:comment, author: member) }
context "for Photo" do
it_behaves_like "a commentable controller", :photo, :photo_id
end
it "redirects to the post the comment was on" do
expect(response).to redirect_to(comment.post)
end
end
context "for Planting" do
it_behaves_like "a commentable controller", :planting, :planting_id
end
describe "not my comment" do
let(:comment) { FactoryBot.create(:comment) }
context "for Harvest" do
it_behaves_like "a commentable controller", :harvest, :harvest_id
end
it { expect(response).not_to be_successful }
end
context "for Activity" do
it_behaves_like "a commentable controller", :activity, :activity_id
end
end

View File

@@ -0,0 +1,19 @@
# frozen_string_literal: true
FactoryBot.define do
factory :activity do
association :owner, factory: :member
sequence(:name) { |n| "Test Activity #{n}" }
description { "This is a test activity." }
category { "General" } # Example category
due_date { Time.zone.today + 1.week }
# Optional associations, uncomment and adjust if Activity model has these
# association :garden, factory: :garden
# association :planting, factory: :planting
trait :finished do
finished { true }
end
end
end

View File

@@ -2,9 +2,30 @@
FactoryBot.define do
factory :comment do
post
author
association :author, factory: :member # Explicitly use :member factory for author
sequence(:body) { |n| "OMG LOL #{n}" }
# because our commenters are more polite than YouTube's
# Default to associating with a post if no specific commentable is provided
association :commentable, factory: :post
trait :for_post do
association :commentable, factory: :post
end
trait :for_photo do
association :commentable, factory: :photo
end
trait :for_planting do
association :commentable, factory: :planting
end
trait :for_harvest do
association :commentable, factory: :harvest
end
trait :for_activity do
association :commentable, factory: :activity
end
end
end

View File

@@ -0,0 +1,6 @@
FactoryBot.define do
factory :garden_collaborator do
garden
member
end
end

17
spec/factories/members.rb Normal file
View File

@@ -0,0 +1,17 @@
# frozen_string_literal: true
FactoryBot.define do
factory :member do
sequence(:login_name) { |n| "member#{n}" }
sequence(:email) { |n| "member#{n}@example.com" }
password { "password123" }
password_confirmation { "password123" }
confirmed_at { Time.zone.now } # Assuming Devise confirmable is used
trait :admin do
after(:create) { |member| member.add_role(:admin) }
end
# Add other traits if needed, e.g., for specific member states or roles
end
end

View File

@@ -0,0 +1,38 @@
# frozen_string_literal: true
FactoryBot.define do
factory :planting do
association :owner, factory: :member
association :crop
association :garden
planted_at { Time.zone.today - 1.month }
description { "My awesome planting." }
quantity { 1 } # Example attribute
# Add traits if needed
trait :finished do
finished { true }
finished_at { Time.zone.today - 1.day }
end
end
end
# Assuming Crop and Garden factories are needed and might not exist
# Minimal Crop factory
FactoryBot.define do
factory :crop do
sequence(:name) { |n| "Test Crop #{n}" }
# Add other necessary attributes for Crop
# e.g., approval_status if relevant for comments
approval_status { 'approved' } # Default to approved for simplicity
end
end
# Minimal Garden factory
FactoryBot.define do
factory :garden do
association :owner, factory: :member
sequence(:name) { |n| "Test Garden #{n}" }
# Add other necessary attributes for Garden
end
end

37
spec/factories/posts.rb Normal file
View File

@@ -0,0 +1,37 @@
# frozen_string_literal: true
FactoryBot.define do
factory :post do
association :author, factory: :member
association :forum # Assuming posts belong to a forum
sequence(:subject) { |n| "Test Post Subject #{n}" }
sequence(:body) { |n| "This is the body of test post #{n}." }
# Add traits if needed, e.g., for posts with photos, crops, etc.
trait :with_photos do
transient do
photos_count { 1 }
end
after(:create) do |post, evaluator|
create_list(:photo, evaluator.photos_count, owner: post.author, post_id: post.id) # Assuming Photo has post_id or similar
end
end
trait :with_crops do
transient do
crops_count { 1 }
end
after(:create) do |post, evaluator|
create_list(:crop, evaluator.crops_count, posts: [post]) # Assuming a has_and_belongs_to_many or has_many :through
end
end
end
end
# Assuming a Forum model exists and has a factory
FactoryBot.define do
factory :forum do
sequence(:name) { |n| "Test Forum #{n}" }
# Add other attributes for Forum as needed
end
end

View File

@@ -0,0 +1,156 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.feature "Commenting on Activities", type: :feature, js: true do
let(:activity_owner) { FactoryBot.create(:member, login_name: "ActivityOwner") }
let(:commenter) { FactoryBot.create(:member, login_name: "Commenter") }
let(:other_member) { FactoryBot.create(:member, login_name: "OtherMember") }
let(:admin) { FactoryBot.create(:member, :admin, login_name: "AdminUser") }
let!(:activity) { FactoryBot.create(:activity, owner: activity_owner, name: "Gardening Day") }
def login_as(user)
visit new_member_session_path
fill_in "Login Name or Email", with: user.login_name
fill_in "Password", with: user.password
click_button "Log in"
expect(page).to have_content("Signed in successfully")
end
describe "User comments on an Activity" do
before do
login_as(commenter)
visit activity_path(activity)
end
it "allows a user to create a comment" do
expect(page).to have_content("Comments")
click_link "Add Comment"
expect(page).to have_current_path(new_activity_comment_path(activity))
expect(page).to have_content("Add comment to activity")
fill_in "comment_body", with: "Sounds like a fun activity!"
click_button "Post comment"
expect(page).to have_current_path(activity_path(activity))
expect(page).to have_content("Sounds like a fun activity!")
expect(page).to have_content(commenter.login_name)
end
end
describe "Editing comments on an Activity" do
let!(:comment_to_edit) { FactoryBot.create(:comment, commentable: activity, author: commenter, body: "Initial activity comment") }
context "as comment author" do
before do
login_as(commenter)
visit activity_path(activity)
find('.comment-body', text: "Initial activity comment").ancestor('.comment').find_button('Actions').click
click_link "Edit"
end
it "allows the author to edit their comment" do
expect(page).to have_current_path(edit_comment_path(comment_to_edit))
fill_in "comment_body", with: "Updated activity comment."
click_button "Post comment"
expect(page).to have_current_path(activity_path(activity))
expect(page).to have_content("Updated activity comment.")
expect(page).not_to have_content("Initial activity comment")
end
end
context "as admin" do
before do
login_as(admin)
visit activity_path(activity)
find('.comment-body', text: "Initial activity comment").ancestor('.comment').find_button('Actions').click
click_link "Edit"
end
it "allows admin to edit any comment" do
fill_in "comment_body", with: "Admin edited this activity comment."
click_button "Post comment"
expect(page).to have_content("Admin edited this activity comment.")
end
end
context "as unauthorized user" do
before do
login_as(other_member)
visit activity_path(activity)
end
it "does not show edit link for other's comment" do
comment_element = find('.comment-body', text: "Initial activity comment").ancestor('.comment')
expect(comment_element).not_to have_link("Edit")
expect(comment_element).not_to have_button("Actions")
end
end
end
describe "Deleting comments on an Activity" do
let!(:comment_to_delete) { FactoryBot.create(:comment, commentable: activity, author: commenter, body: "Delete this activity comment") }
context "as comment author" do
before do
login_as(commenter)
visit activity_path(activity)
find('.comment-body', text: "Delete this activity comment").ancestor('.comment').find_button('Actions').click
accept_alert { click_link "Delete" }
end
it "allows the author to delete their comment" do
expect(page).not_to have_content("Delete this activity comment")
expect(page).to have_content("Comment was successfully destroyed.")
end
end
context "as activity owner" do
before do
login_as(activity_owner)
visit activity_path(activity)
find('.comment-body', text: "Delete this activity comment").ancestor('.comment').find_button('Actions').click
accept_alert { click_link "Delete" }
end
it "allows the activity owner to delete any comment on their activity" do
expect(page).not_to have_content("Delete this activity comment")
expect(page).to have_content("Comment was successfully destroyed.")
end
end
context "as admin" do
before do
login_as(admin)
visit activity_path(activity)
find('.comment-body', text: "Delete this activity comment").ancestor('.comment').find_button('Actions').click
accept_alert { click_link "Delete" }
end
it "allows admin to delete any comment" do
expect(page).not_to have_content("Delete this activity comment")
expect(page).to have_content("Comment was successfully destroyed.")
end
end
context "as unauthorized user" do
let!(:another_comment) { FactoryBot.create(:comment, commentable: activity, author: activity_owner, body: "Activity owner's comment") }
before do
login_as(other_member)
visit activity_path(activity)
end
it "does not show delete link for other's comment" do
comment_element = find('.comment-body', text: "Activity owner's comment").ancestor('.comment')
expect(comment_element).not_to have_link("Delete")
comment_element_2 = find('.comment-body', text: "Delete this activity comment").ancestor('.comment')
expect(comment_element_2).not_to have_link("Delete")
end
end
end
end

View File

@@ -1,38 +0,0 @@
# frozen_string_literal: true
require 'rails_helper'
describe 'Commenting on a post' do
include_context 'signed in member'
let(:member) { create(:member) }
let(:post) { create(:post, author: member) }
before { visit new_comment_path post_id: post.id }
include_examples 'is accessible'
it "creating a comment" do
fill_in "comment_body", with: "This is a sample test for comment"
click_button "Post comment"
expect(page).to have_content "comment was successfully created."
expect(page).to have_content "Posted by"
page.percy_snapshot(page, name: 'Posting a comment')
end
context "editing a comment" do
let(:existing_comment) { create(:comment, post:, author: member) }
before do
visit edit_comment_path existing_comment
end
include_examples 'is accessible'
it "saving edit" do
fill_in "comment_body", with: "Testing edit for comment"
click_button "Post comment"
expect(page).to have_content "comment was successfully updated."
expect(page).to have_content "edited at"
end
end
end

View File

@@ -10,10 +10,6 @@ describe "Gardens", :js do
include_examples 'is accessible'
it "has the required fields help text" do
expect(page).to have_content "* denotes a required field"
end
it "displays required and optional fields properly" do
expect(page).to have_selector ".required", text: "Name"
expect(page).to have_selector 'textarea#garden_description'
@@ -27,14 +23,5 @@ describe "Gardens", :js do
expect(page).to have_content "Garden was successfully created"
expect(page).to have_content "New garden"
end
it "Refuse to create new garden with negative area" do
visit new_garden_path
fill_in "Name", with: "Negative Garden"
fill_in "Area", with: -5
click_button "Save"
expect(page).to have_no_content "Garden was successfully created"
expect(page).to have_content "Area must be greater than or equal to 0"
end
end
end

View File

@@ -52,15 +52,6 @@ describe "Planting a crop", :js do
expect(page).to have_content "New garden"
end
it "Refuse to create new garden with negative area" do
visit new_garden_path
fill_in "Name", with: "Negative Garden"
fill_in "Area", with: -5
click_button "Save"
expect(page).to have_no_content "Garden was successfully created"
expect(page).to have_content "Area must be greater than or equal to 0"
end
context "Clicking edit from the index page" do
before do
visit gardens_path

View File

@@ -0,0 +1,160 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.feature "Commenting on Harvests", type: :feature, js: true do
let(:harvest_owner) { FactoryBot.create(:member, login_name: "HarvestOwner") }
let(:commenter) { FactoryBot.create(:member, login_name: "Commenter") }
let(:other_member) { FactoryBot.create(:member, login_name: "OtherMember") }
let(:admin) { FactoryBot.create(:member, :admin, login_name: "AdminUser") }
# Ensure crop, planting, and garden are created for the harvest
let(:crop) { FactoryBot.create(:crop) }
let(:garden) { FactoryBot.create(:garden, owner: harvest_owner) } # Harvest owner also owns garden for simplicity
let(:planting) { FactoryBot.create(:planting, owner: harvest_owner, crop: crop, garden: garden) }
let!(:harvest) { FactoryBot.create(:harvest, owner: harvest_owner, planting: planting, description: "My test harvest") }
def login_as(user)
visit new_member_session_path
fill_in "Login Name or Email", with: user.login_name
fill_in "Password", with: user.password
click_button "Log in"
expect(page).to have_content("Signed in successfully")
end
describe "User comments on a Harvest" do
before do
login_as(commenter)
visit harvest_path(harvest)
end
it "allows a user to create a comment" do
expect(page).to have_content("Comments")
click_link "Add Comment"
expect(page).to have_current_path(new_harvest_comment_path(harvest))
expect(page).to have_content("Add comment to harvest")
fill_in "comment_body", with: "This harvest looks bountiful!"
click_button "Post comment"
expect(page).to have_current_path(harvest_path(harvest))
expect(page).to have_content("This harvest looks bountiful!")
expect(page).to have_content(commenter.login_name)
end
end
describe "Editing comments on a Harvest" do
let!(:comment_to_edit) { FactoryBot.create(:comment, commentable: harvest, author: commenter, body: "Initial harvest comment") }
context "as comment author" do
before do
login_as(commenter)
visit harvest_path(harvest)
find('.comment-body', text: "Initial harvest comment").ancestor('.comment').find_button('Actions').click
click_link "Edit"
end
it "allows the author to edit their comment" do
expect(page).to have_current_path(edit_comment_path(comment_to_edit))
fill_in "comment_body", with: "Updated harvest comment."
click_button "Post comment"
expect(page).to have_current_path(harvest_path(harvest))
expect(page).to have_content("Updated harvest comment.")
expect(page).not_to have_content("Initial harvest comment")
end
end
context "as admin" do
before do
login_as(admin)
visit harvest_path(harvest)
find('.comment-body', text: "Initial harvest comment").ancestor('.comment').find_button('Actions').click
click_link "Edit"
end
it "allows admin to edit any comment" do
fill_in "comment_body", with: "Admin edited this harvest comment."
click_button "Post comment"
expect(page).to have_content("Admin edited this harvest comment.")
end
end
context "as unauthorized user" do
before do
login_as(other_member)
visit harvest_path(harvest)
end
it "does not show edit link for other's comment" do
comment_element = find('.comment-body', text: "Initial harvest comment").ancestor('.comment')
expect(comment_element).not_to have_link("Edit")
expect(comment_element).not_to have_button("Actions")
end
end
end
describe "Deleting comments on a Harvest" do
let!(:comment_to_delete) { FactoryBot.create(:comment, commentable: harvest, author: commenter, body: "Delete this harvest comment") }
context "as comment author" do
before do
login_as(commenter)
visit harvest_path(harvest)
find('.comment-body', text: "Delete this harvest comment").ancestor('.comment').find_button('Actions').click
accept_alert { click_link "Delete" }
end
it "allows the author to delete their comment" do
expect(page).not_to have_content("Delete this harvest comment")
expect(page).to have_content("Comment was successfully destroyed.")
end
end
context "as harvest owner" do
before do
login_as(harvest_owner)
visit harvest_path(harvest)
find('.comment-body', text: "Delete this harvest comment").ancestor('.comment').find_button('Actions').click
accept_alert { click_link "Delete" }
end
it "allows the harvest owner to delete any comment on their harvest" do
expect(page).not_to have_content("Delete this harvest comment")
expect(page).to have_content("Comment was successfully destroyed.")
end
end
context "as admin" do
before do
login_as(admin)
visit harvest_path(harvest)
find('.comment-body', text: "Delete this harvest comment").ancestor('.comment').find_button('Actions').click
accept_alert { click_link "Delete" }
end
it "allows admin to delete any comment" do
expect(page).not_to have_content("Delete this harvest comment")
expect(page).to have_content("Comment was successfully destroyed.")
end
end
context "as unauthorized user" do
let!(:another_comment) { FactoryBot.create(:comment, commentable: harvest, author: harvest_owner, body: "Harvest owner's comment") }
before do
login_as(other_member)
visit harvest_path(harvest)
end
it "does not show delete link for other's comment" do
comment_element = find('.comment-body', text: "Harvest owner's comment").ancestor('.comment')
expect(comment_element).not_to have_link("Delete")
comment_element_2 = find('.comment-body', text: "Delete this harvest comment").ancestor('.comment')
expect(comment_element_2).not_to have_link("Delete")
end
end
end
end

View File

@@ -13,10 +13,6 @@ describe "Harvesting a crop", :js, :search do
it_behaves_like "crop suggest", "harvest", "crop"
it "has the required fields help text" do
expect(page).to have_content "* denotes a required field"
end
describe "displays required and optional fields properly" do
it { expect(page).to have_selector ".required", text: "What did you harvest?" }
it { expect(page).to have_selector 'input#harvest_quantity' }
@@ -30,7 +26,7 @@ describe "Harvesting a crop", :js, :search do
within "form#new_harvest" do
choose plant_part.name
fill_in "When?", with: "2014-06-15"
fill_in "When?", with: Time.new(2014, 06, 15)
fill_in "How many?", with: 42
fill_in "Weighing (in total)", with: 42
fill_in "Notes", with: "It's killer."

View File

@@ -2,7 +2,7 @@
require 'rails_helper'
describe "member deletion" do
describe "member deletion", flaky: true do
context "with activity and followers" do
let(:member) { FactoryBot.create(:member) }
let(:other_member) { FactoryBot.create(:member) }
@@ -14,14 +14,9 @@ describe "member deletion" do
let!(:secondgarden) { FactoryBot.create(:garden, owner: member) }
before do
login_as(member)
visit member_path(other_member)
click_link 'Follow'
logout
login_as(other_member)
visit member_path(member)
click_link 'Follow'
logout
member.follows.create!(followed: other_member)
other_member.follows.create!(followed: member)
login_as(member)
FactoryBot.create(:comment, author: member, post: othermemberpost)
FactoryBot.create(:comment, author: other_member, post: memberpost, body: "Fun comment-y thing")
@@ -60,8 +55,21 @@ describe "member deletion" do
click_link 'Delete Account'
fill_in "current_pw_for_delete", with: "password1", match: :prefer_exact
click_button "Delete"
visit member_path(member)
expect(page).to have_text "The page you were looking for doesn't exist."
# Assert we're signed out
expect(page).to have_current_path(new_member_session_path)
# And soft deleted
member.reload
expect(member.discarded?).to be true
# Frustratingly, this cannot be discarded? and also meet
# `@member = Member.confirmed.kept.find_by!(slug: params[:slug])`
#
# Yet, we see the below assert fail in CI.
#
# visit member_path(member)
# expect(page).to have_text "The page you were looking for doesn't exist."
end
describe 'percy spec' do

View File

@@ -63,8 +63,21 @@ describe "follows", :js do
end
it "removes members from following and followers lists after unfollow" do
expect(member.already_following?(other_member)).to be false
click_link 'Follow'
expect(page).to have_current_path(member_path(other_member))
expect(page).to have_content "Followed #{other_member.login_name}"
member.reload
expect(member.already_following?(other_member)).to be true
click_link 'Unfollow'
expect(page).to have_current_path(member_path(other_member))
expect(page).to have_content "Unfollowed #{other_member.login_name}"
member.reload
expect(member.already_following?(other_member)).to be false
visit member_follows_path(member)
expect(page).to have_no_content other_member.login_name
visit member_followers_path(other_member)

View File

@@ -0,0 +1,158 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.feature "Commenting on Photos", type: :feature, js: true do
let(:photo_owner) { FactoryBot.create(:member, login_name: "PhotoOwner") }
let(:commenter) { FactoryBot.create(:member, login_name: "Commenter") }
let(:other_member) { FactoryBot.create(:member, login_name: "OtherMember") }
let(:admin) { FactoryBot.create(:member, :admin, login_name: "AdminUser") }
let!(:photo) { FactoryBot.create(:photo, owner: photo_owner, title: "Beautiful Sunset") }
def login_as(user)
visit new_member_session_path
fill_in "Login Name or Email", with: user.login_name
fill_in "Password", with: user.password
click_button "Log in"
expect(page).to have_content("Signed in successfully")
end
describe "User comments on a Photo" do
before do
login_as(commenter)
visit photo_path(photo)
end
it "allows a user to create a comment" do
expect(page).to have_content("Comments")
click_link "Add Comment" # From the _comments partial
expect(page).to have_current_path(new_photo_comment_path(photo))
expect(page).to have_content("Add comment to photo")
fill_in "comment_body", with: "What a stunning photo!"
click_button "Post comment"
expect(page).to have_current_path(photo_path(photo))
expect(page).to have_content("What a stunning photo!")
expect(page).to have_content(commenter.login_name)
end
end
describe "Editing comments on a Photo" do
let!(:comment_to_edit) { FactoryBot.create(:comment, commentable: photo, author: commenter, body: "Initial comment body") }
context "as comment author" do
before do
login_as(commenter)
visit photo_path(photo)
# Find the comment section and then the edit button within it.
# This assumes the comment body is unique enough or we can find by specific data-testid attributes if added.
find('.comment-body', text: "Initial comment body").ancestor('.comment').find_button('Actions').click
click_link "Edit"
end
it "allows the author to edit their comment" do
expect(page).to have_current_path(edit_comment_path(comment_to_edit))
fill_in "comment_body", with: "Updated comment body here."
click_button "Post comment"
expect(page).to have_current_path(photo_path(photo))
expect(page).to have_content("Updated comment body here.")
expect(page).not_to have_content("Initial comment body")
end
end
context "as admin" do
before do
login_as(admin)
visit photo_path(photo)
find('.comment-body', text: "Initial comment body").ancestor('.comment').find_button('Actions').click
click_link "Edit"
end
it "allows admin to edit any comment" do
fill_in "comment_body", with: "Admin edited this comment."
click_button "Post comment"
expect(page).to have_content("Admin edited this comment.")
end
end
context "as unauthorized user" do
before do
login_as(other_member)
visit photo_path(photo)
end
it "does not show edit link for other's comment" do
# Check within the specific comment's scope
comment_element = find('.comment-body', text: "Initial comment body").ancestor('.comment')
expect(comment_element).not_to have_link("Edit")
expect(comment_element).not_to have_button("Actions") # Or check that Actions doesn't show Edit
end
end
end
describe "Deleting comments on a Photo" do
let!(:comment_to_delete) { FactoryBot.create(:comment, commentable: photo, author: commenter, body: "This will be deleted") }
context "as comment author" do
before do
login_as(commenter)
visit photo_path(photo)
find('.comment-body', text: "This will be deleted").ancestor('.comment').find_button('Actions').click
accept_alert { click_link "Delete" }
end
it "allows the author to delete their comment" do
expect(page).not_to have_content("This will be deleted")
expect(page).to have_content("Comment was successfully destroyed.") # Assuming flash message
end
end
context "as photo owner" do
before do
login_as(photo_owner)
visit photo_path(photo)
find('.comment-body', text: "This will be deleted").ancestor('.comment').find_button('Actions').click
accept_alert { click_link "Delete" }
end
it "allows the photo owner to delete any comment on their photo" do
expect(page).not_to have_content("This will be deleted")
expect(page).to have_content("Comment was successfully destroyed.")
end
end
context "as admin" do
before do
login_as(admin)
visit photo_path(photo)
find('.comment-body', text: "This will be deleted").ancestor('.comment').find_button('Actions').click
accept_alert { click_link "Delete" }
end
it "allows admin to delete any comment" do
expect(page).not_to have_content("This will be deleted")
expect(page).to have_content("Comment was successfully destroyed.")
end
end
context "as unauthorized user" do
let!(:another_comment) { FactoryBot.create(:comment, commentable: photo, author: photo_owner, body: "Photo owner's comment") }
before do
login_as(other_member) # other_member is not admin, not photo_owner, not author of `another_comment`
visit photo_path(photo)
end
it "does not show delete link for other's comment" do
comment_element = find('.comment-body', text: "Photo owner's comment").ancestor('.comment')
expect(comment_element).not_to have_link("Delete")
# Also check the original comment_to_delete by commenter
comment_element_2 = find('.comment-body', text: "This will be deleted").ancestor('.comment')
expect(comment_element_2).not_to have_link("Delete")
end
end
end
end

View File

@@ -0,0 +1,158 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.feature "Commenting on Plantings", type: :feature, js: true do
let(:planting_owner) { FactoryBot.create(:member, login_name: "PlantingOwner") }
let(:commenter) { FactoryBot.create(:member, login_name: "Commenter") }
let(:other_member) { FactoryBot.create(:member, login_name: "OtherMember") }
let(:admin) { FactoryBot.create(:member, :admin, login_name: "AdminUser") }
# Ensure crop and garden are created for the planting
let(:crop) { FactoryBot.create(:crop) }
let(:garden) { FactoryBot.create(:garden, owner: planting_owner) }
let!(:planting) { FactoryBot.create(:planting, owner: planting_owner, crop: crop, garden: garden, description: "My test planting") }
def login_as(user)
visit new_member_session_path
fill_in "Login Name or Email", with: user.login_name
fill_in "Password", with: user.password
click_button "Log in"
expect(page).to have_content("Signed in successfully")
end
describe "User comments on a Planting" do
before do
login_as(commenter)
visit planting_path(planting)
end
it "allows a user to create a comment" do
expect(page).to have_content("Comments")
click_link "Add Comment"
expect(page).to have_current_path(new_planting_comment_path(planting))
expect(page).to have_content("Add comment to planting")
fill_in "comment_body", with: "This planting looks great!"
click_button "Post comment"
expect(page).to have_current_path(planting_path(planting))
expect(page).to have_content("This planting looks great!")
expect(page).to have_content(commenter.login_name)
end
end
describe "Editing comments on a Planting" do
let!(:comment_to_edit) { FactoryBot.create(:comment, commentable: planting, author: commenter, body: "Initial planting comment") }
context "as comment author" do
before do
login_as(commenter)
visit planting_path(planting)
find('.comment-body', text: "Initial planting comment").ancestor('.comment').find_button('Actions').click
click_link "Edit"
end
it "allows the author to edit their comment" do
expect(page).to have_current_path(edit_comment_path(comment_to_edit))
fill_in "comment_body", with: "Updated planting comment."
click_button "Post comment"
expect(page).to have_current_path(planting_path(planting))
expect(page).to have_content("Updated planting comment.")
expect(page).not_to have_content("Initial planting comment")
end
end
context "as admin" do
before do
login_as(admin)
visit planting_path(planting)
find('.comment-body', text: "Initial planting comment").ancestor('.comment').find_button('Actions').click
click_link "Edit"
end
it "allows admin to edit any comment" do
fill_in "comment_body", with: "Admin edited this planting comment."
click_button "Post comment"
expect(page).to have_content("Admin edited this planting comment.")
end
end
context "as unauthorized user" do
before do
login_as(other_member)
visit planting_path(planting)
end
it "does not show edit link for other's comment" do
comment_element = find('.comment-body', text: "Initial planting comment").ancestor('.comment')
expect(comment_element).not_to have_link("Edit")
expect(comment_element).not_to have_button("Actions")
end
end
end
describe "Deleting comments on a Planting" do
let!(:comment_to_delete) { FactoryBot.create(:comment, commentable: planting, author: commenter, body: "Delete this planting comment") }
context "as comment author" do
before do
login_as(commenter)
visit planting_path(planting)
find('.comment-body', text: "Delete this planting comment").ancestor('.comment').find_button('Actions').click
accept_alert { click_link "Delete" }
end
it "allows the author to delete their comment" do
expect(page).not_to have_content("Delete this planting comment")
expect(page).to have_content("Comment was successfully destroyed.")
end
end
context "as planting owner" do
before do
login_as(planting_owner)
visit planting_path(planting)
find('.comment-body', text: "Delete this planting comment").ancestor('.comment').find_button('Actions').click
accept_alert { click_link "Delete" }
end
it "allows the planting owner to delete any comment on their planting" do
expect(page).not_to have_content("Delete this planting comment")
expect(page).to have_content("Comment was successfully destroyed.")
end
end
context "as admin" do
before do
login_as(admin)
visit planting_path(planting)
find('.comment-body', text: "Delete this planting comment").ancestor('.comment').find_button('Actions').click
accept_alert { click_link "Delete" }
end
it "allows admin to delete any comment" do
expect(page).not_to have_content("Delete this planting comment")
expect(page).to have_content("Comment was successfully destroyed.")
end
end
context "as unauthorized user" do
let!(:another_comment) { FactoryBot.create(:comment, commentable: planting, author: planting_owner, body: "Planting owner's comment") }
before do
login_as(other_member)
visit planting_path(planting)
end
it "does not show delete link for other's comment" do
comment_element = find('.comment-body', text: "Planting owner's comment").ancestor('.comment')
expect(comment_element).not_to have_link("Delete")
comment_element_2 = find('.comment-body', text: "Delete this planting comment").ancestor('.comment')
expect(comment_element_2).not_to have_link("Delete")
end
end
end
end

View File

@@ -18,10 +18,6 @@ describe "Planting a crop", :js, :search do
it_behaves_like "crop suggest", "planting"
it "has the required fields help text" do
expect(page).to have_content "* denotes a required field"
end
describe "displays required and optional fields properly" do
it { expect(page).to have_selector ".required", text: "What did you plant?" }
it { expect(page).to have_selector ".required", text: "Where did you plant it?" }

View File

@@ -0,0 +1,176 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.feature "Commenting on Posts", type: :feature, js: true do
# Use existing 'signed in member' shared context if it provides Capybara login helper
# Otherwise, define one locally or ensure one is available.
# For consistency with other new specs, defining a local login_as helper.
let(:post_author) { FactoryBot.create(:member, login_name: "PostAuthor") }
let(:commenter) { FactoryBot.create(:member, login_name: "Commenter") }
let(:other_member) { FactoryBot.create(:member, login_name: "OtherMember") }
let(:admin) { FactoryBot.create(:member, :admin, login_name: "AdminUser") }
# Ensure a forum is created for the post if your Post factory/model requires it
let!(:forum) { FactoryBot.create(:forum) }
let!(:post) { FactoryBot.create(:post, author: post_author, forum: forum, subject: "My Test Post") }
def login_as(user)
visit new_member_session_path
fill_in "Login Name or Email", with: user.login_name
fill_in "Password", with: user.password
click_button "Log in"
expect(page).to have_content("Signed in successfully")
end
# Include shared examples for accessibility if they exist and are relevant
# For now, focusing on the commenting CRUD operations.
# The original spec had: include_examples 'is accessible'
# If this shared example exists and is desired, it can be added to relevant `before` blocks.
describe "User comments on a Post" do
before do
login_as(commenter)
visit post_path(post)
end
it "allows a user to create a comment" do
expect(page).to have_content("Comments") # From the _comments partial
# The "Add Comment" link is now within the _comments partial
# If the _comments partial is set up to show the form directly or link to new, this will work.
# Assuming it has a link:
click_link "Add Comment"
expect(page).to have_current_path(new_post_comment_path(post))
expect(page).to have_content("Add comment to post")
fill_in "comment_body", with: "This is a great post!"
click_button "Post comment"
expect(page).to have_current_path(post_path(post)) # Should redirect back to the post
expect(page).to have_content("This is a great post!")
expect(page).to have_content(commenter.login_name)
# Check for flash message if your controller sets one, e.g.:
# expect(page).to have_content("Comment was successfully created.")
end
end
describe "Editing comments on a Post" do
let!(:comment_to_edit) { FactoryBot.create(:comment, commentable: post, author: commenter, body: "Initial post comment") }
context "as comment author" do
before do
login_as(commenter)
visit post_path(post)
find('.comment-body', text: "Initial post comment").ancestor('.comment').find_button('Actions').click
click_link "Edit"
end
it "allows the author to edit their comment" do
expect(page).to have_current_path(edit_comment_path(comment_to_edit))
fill_in "comment_body", with: "Updated post comment."
click_button "Post comment"
expect(page).to have_current_path(post_path(post))
expect(page).to have_content("Updated post comment.")
expect(page).not_to have_content("Initial post comment")
# Check for flash message if your controller sets one, e.g.:
# expect(page).to have_content("Comment was successfully updated.")
end
end
context "as admin" do
before do
login_as(admin)
visit post_path(post)
find('.comment-body', text: "Initial post comment").ancestor('.comment').find_button('Actions').click
click_link "Edit"
end
it "allows admin to edit any comment" do
fill_in "comment_body", with: "Admin edited this post comment."
click_button "Post comment"
expect(page).to have_content("Admin edited this post comment.")
end
end
context "as unauthorized user" do
before do
login_as(other_member)
visit post_path(post)
end
it "does not show edit link for other's comment" do
comment_element = find('.comment-body', text: "Initial post comment").ancestor('.comment')
expect(comment_element).not_to have_link("Edit")
expect(comment_element).not_to have_button("Actions")
end
end
end
describe "Deleting comments on a Post" do
let!(:comment_to_delete) { FactoryBot.create(:comment, commentable: post, author: commenter, body: "Delete this post comment") }
context "as comment author" do
before do
login_as(commenter)
visit post_path(post)
find('.comment-body', text: "Delete this post comment").ancestor('.comment').find_button('Actions').click
accept_alert { click_link "Delete" }
end
it "allows the author to delete their comment" do
expect(page).not_to have_content("Delete this post comment")
expect(page).to have_content("Comment was successfully destroyed.") # Assuming flash message
end
end
context "as post author (owner of commentable)" do
before do
# Ensure commenter is not the post_author for this specific test
expect(commenter).not_to eq(post_author)
login_as(post_author)
visit post_path(post)
find('.comment-body', text: "Delete this post comment").ancestor('.comment').find_button('Actions').click
accept_alert { click_link "Delete" }
end
it "allows the post author to delete any comment on their post" do
expect(page).not_to have_content("Delete this post comment")
expect(page).to have_content("Comment was successfully destroyed.")
end
end
context "as admin" do
before do
login_as(admin)
visit post_path(post)
find('.comment-body', text: "Delete this post comment").ancestor('.comment').find_button('Actions').click
accept_alert { click_link "Delete" }
end
it "allows admin to delete any comment" do
expect(page).not_to have_content("Delete this post comment")
expect(page).to have_content("Comment was successfully destroyed.")
end
end
context "as unauthorized user" do
# Create a comment by the post_author to test against
let!(:another_comment) { FactoryBot.create(:comment, commentable: post, author: post_author, body: "Post author's comment") }
before do
login_as(other_member) # other_member is not admin, not post_author, not author of `another_comment`
visit post_path(post)
end
it "does not show delete link for other's comment" do
comment_element = find('.comment-body', text: "Post author's comment").ancestor('.comment')
expect(comment_element).not_to have_link("Delete")
# Also check the original comment_to_delete by commenter
comment_element_2 = find('.comment-body', text: "Delete this post comment").ancestor('.comment')
expect(comment_element_2).not_to have_link("Delete")
end
end
end
end

View File

@@ -12,10 +12,6 @@ describe "Seeds", :js, :search do
it_behaves_like "crop suggest", "seed", "crop"
it "has the required fields help text" do
expect(page).to have_content "* denotes a required field"
end
describe "displays required and optional fields properly" do
# NOTE: The required behaviour is pushed down to the control itself, not the form-group as of rails 7.1.
# Modern browsers enforce the required behaviour better than us doing it ourselves.

View File

@@ -10,13 +10,6 @@ describe ApplicationHelper do
parse_date('may 12th 2012').should eq Date.new(2012, 5, 12)
end
it "shows required field marker help text with proper formatting" do
output = required_field_help_text
expect(output).to have_selector '.margin-bottom'
expect(output).to have_selector '.red', text: '*'
expect(output).to have_selector 'em', text: 'denotes a required field'
end
describe '#avatar_uri' do
context 'with a normal user' do
before do

View File

@@ -3,53 +3,152 @@
require 'rails_helper'
describe Comment do
context "basic" do
let(:comment) { FactoryBot.create(:comment) }
context "associations" do
let(:member) { FactoryBot.create(:member) } # Common author
it "belongs to a post" do
comment.post.should be_an_instance_of Post
it "belongs to a commentable (Post)" do
post = FactoryBot.create(:post, author: member)
comment = FactoryBot.create(:comment, commentable: post, author: member)
comment.commentable.should be_an_instance_of Post
end
it "belongs to a commentable (Photo)" do
photo = FactoryBot.create(:photo, owner: member)
comment = FactoryBot.create(:comment, commentable: photo, author: member)
comment.commentable.should be_an_instance_of Photo
end
it "belongs to a commentable (Planting)" do
planting = FactoryBot.create(:planting, owner: member)
comment = FactoryBot.create(:comment, commentable: planting, author: member)
comment.commentable.should be_an_instance_of Planting
end
it "belongs to a commentable (Harvest)" do
harvest = FactoryBot.create(:harvest, owner: member)
comment = FactoryBot.create(:comment, commentable: harvest, author: member)
comment.commentable.should be_an_instance_of Harvest
end
it "belongs to a commentable (Activity)" do
activity = FactoryBot.create(:activity, owner: member)
comment = FactoryBot.create(:comment, commentable: activity, author: member)
comment.commentable.should be_an_instance_of Activity
end
it "belongs to an author" do
comment = FactoryBot.create(:comment, author: member) # Default commentable is Post
comment.author.should be_an_instance_of Member
end
end
context "notifications" do
RSpec.shared_examples "comment notifications" do |commentable_type, commentable_factory_name|
let(:commentable_owner) { FactoryBot.create(:member) }
let(:comment_author) { FactoryBot.create(:member) }
let!(:commentable) do
# For :post, the owner is :author. For others, it's :owner.
if commentable_factory_name == :post
FactoryBot.create(commentable_factory_name, author: commentable_owner)
else
FactoryBot.create(commentable_factory_name, owner: commentable_owner)
end
end
it "sends a notification when a comment is posted" do
expect do
FactoryBot.create(:comment)
FactoryBot.create(:comment, commentable: commentable, author: comment_author)
end.to change(Notification, :count).by(1)
end
it "sets the notification fields" do
@c = FactoryBot.create(:comment)
@n = Notification.first
@n.sender.should eq @c.author
@n.recipient.should eq @c.post.author
@n.subject.should include 'commented on'
@n.body.should eq @c.body
@n.post.should eq @c.post
it "sets the notification fields correctly" do
comment = FactoryBot.create(:comment, commentable: commentable, author: comment_author)
notification = Notification.last # More robust than Notification.first
notification.sender.should eq comment.author
notification.recipient.should eq commentable_owner
notification.subject.should include "commented on your #{commentable_type.downcase}"
notification.body.should eq comment.body
notification.commentable_id.should eq commentable.id
notification.commentable_type.should eq commentable_type
end
it "doesn't send notifications to yourself" do
@m = FactoryBot.create(:member)
@p = FactoryBot.create(:post, author: @m)
it "doesn't send notifications to yourself (when comment author is commentable owner)" do
expect do
FactoryBot.create(:comment, post: @p, author: @m)
FactoryBot.create(:comment, commentable: commentable, author: commentable_owner)
end.not_to change(Notification, :count)
end
end
context "notifications for Post" do
include_examples "comment notifications", "Post", :post
end
context "notifications for Photo" do
include_examples "comment notifications", "Photo", :photo
end
context "notifications for Planting" do
include_examples "comment notifications", "Planting", :planting
end
context "notifications for Harvest" do
include_examples "comment notifications", "Harvest", :harvest
end
context "notifications for Activity" do
include_examples "comment notifications", "Activity", :activity
end
RSpec.shared_examples "comment to_s method" do |commentable_type, commentable_factory_name|
let(:commentable_owner) { FactoryBot.create(:member) }
let(:comment_author) { FactoryBot.create(:member, login_name: "CommenterUser") }
let!(:commentable) do
# For :post, the owner is :author. For others, it's :owner.
obj = if commentable_factory_name == :post
FactoryBot.create(commentable_factory_name, author: commentable_owner)
else
FactoryBot.create(commentable_factory_name, owner: commentable_owner)
end
# Ensure commentable has a consistent ID for the test if possible, or just use its class name
obj
end
let(:comment) { FactoryBot.create(:comment, commentable: commentable, author: comment_author) }
it "returns a descriptive string" do
expected_string = "#{comment_author.login_name} commented on #{commentable_type.downcase} ##{commentable.id}"
comment.to_s.should eq expected_string
end
end
context "to_s method for Post" do
include_examples "comment to_s method", "Post", :post
end
context "to_s method for Photo" do
include_examples "comment to_s method", "Photo", :photo
end
context "to_s method for Planting" do
include_examples "comment to_s method", "Planting", :planting
end
context "to_s method for Harvest" do
include_examples "comment to_s method", "Harvest", :harvest
end
context "to_s method for Activity" do
include_examples "comment to_s method", "Activity", :activity
end
context "ordering" do
before do
@m = FactoryBot.create(:member)
# Ensure the commentable for ordering test is a Post, as it was originally
@p = FactoryBot.create(:post, author: @m)
@c1 = FactoryBot.create(:comment, post: @p, author: @m)
@c2 = FactoryBot.create(:comment, post: @p, author: @m)
@c1 = FactoryBot.create(:comment, commentable: @p, author: @m)
@c2 = FactoryBot.create(:comment, commentable: @p, author: @m)
end
it 'has a scope for ASC order for displaying on post page' do
it 'has a scope for ASC order for displaying on commentable page' do # Renamed for clarity
described_class.post_order.should eq [@c1, @c2]
end
end

View File

@@ -7,9 +7,6 @@ require 'simplecov'
# output coverage locally AND send it to coveralls
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([SimpleCov::Formatter::HTMLFormatter])
# fail if there's a significant test coverage drop
SimpleCov.maximum_coverage_drop 1
require 'spec_helper'
require File.expand_path('../config/environment', __dir__)
require 'rspec/rails'

View File

@@ -291,7 +291,7 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
braces@^3.0.2:
braces@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
@@ -1082,11 +1082,11 @@ merge2@^1.3.0, merge2@^1.4.1:
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
micromatch@^4.0.4:
version "4.0.5"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
version "4.0.8"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
dependencies:
braces "^3.0.2"
braces "^3.0.3"
picomatch "^2.3.1"
mime-db@1.52.0: