1
0
مراية لـ https://github.com/postalserver/postal.git تم المزامنة 2025-12-01 05:43:04 +00:00

chore: upgrade to rails 7.1 and ruby 3.4 (#3457)

هذا الالتزام موجود في:
Adam Cooke
2025-10-01 16:42:39 +01:00
ملتزم من قبل GitHub
الأصل 9c5f96ae90
التزام ab6d4430ba
14 ملفات معدلة مع 184 إضافات و138 حذوفات

عرض الملف

@@ -52,10 +52,10 @@ jobs:
registry: ghcr.io registry: ghcr.io
username: ${{ github.actor }} username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- run: docker-compose pull - run: docker compose pull
env: env:
POSTAL_IMAGE: ghcr.io/postalserver/postal:ci-${{ github.sha }} POSTAL_IMAGE: ghcr.io/postalserver/postal:ci-${{ github.sha }}
- run: docker-compose run postal sh -c 'bundle exec rspec' - run: docker compose run postal sh -c 'bundle exec rspec'
env: env:
POSTAL_IMAGE: ghcr.io/postalserver/postal:ci-${{ github.sha }} POSTAL_IMAGE: ghcr.io/postalserver/postal:ci-${{ github.sha }}

عرض الملف

@@ -1 +1 @@
3.2.2 3.4.6

عرض الملف

@@ -1,17 +1,13 @@
FROM ruby:3.2.2-bullseye AS base FROM ruby:3.4.6-bookworm AS base
SHELL ["/bin/bash", "-o", "pipefail", "-c"] SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN apt-get update \ RUN (curl -sL https://deb.nodesource.com/setup_20.x | bash -)
&& apt-get install -y --no-install-recommends \
software-properties-common dirmngr apt-transport-https \
&& (curl -sL https://deb.nodesource.com/setup_20.x | bash -) \
&& rm -rf /var/lib/apt/lists/*
# Install main dependencies # Install main dependencies
RUN apt-get update && \ RUN apt-get update && \
apt-get install -y --no-install-recommends \ apt-get install -y --no-install-recommends \
build-essential \ build-essential \
netcat \ netcat-openbsd \
curl \ curl \
libmariadb-dev \ libmariadb-dev \
libcap2-bin \ libcap2-bin \
@@ -31,7 +27,7 @@ RUN mkdir -p /opt/postal/app /opt/postal/config
WORKDIR /opt/postal/app WORKDIR /opt/postal/app
# Install bundler # Install bundler
RUN gem install bundler -v 2.5.6 --no-doc RUN gem install bundler -v 2.7.2 --no-doc
# Install the latest and active gem dependencies and re-run # Install the latest and active gem dependencies and re-run
# the appropriate commands to handle installs. # the appropriate commands to handle installs.

17
Gemfile
عرض الملف

@@ -1,6 +1,7 @@
# frozen_string_literal: true # frozen_string_literal: true
source "https://rubygems.org" source "https://rubygems.org"
gem "abbrev"
gem "authie" gem "authie"
gem "autoprefixer-rails" gem "autoprefixer-rails"
gem "bcrypt" gem "bcrypt"
@@ -17,14 +18,17 @@ gem "jwt"
gem "kaminari" gem "kaminari"
gem "klogger-logger" gem "klogger-logger"
gem "konfig-config", "~> 3.0" gem "konfig-config", "~> 3.0"
gem "logger"
gem "mail" gem "mail"
gem "mutex_m"
gem "mysql2" gem "mysql2"
gem "nifty-utils" gem "nifty-utils"
gem "nilify_blanks" gem "nilify_blanks"
gem "nio4r" gem "nio4r"
gem "ostruct"
gem "prometheus-client" gem "prometheus-client"
gem "puma" gem "puma"
gem "rails", "= 7.0.8.1" gem "rails", "= 7.1.5.2"
gem "resolv" gem "resolv"
gem "secure_headers" gem "secure_headers"
gem "sentry-rails" gem "sentry-rails"
@@ -47,12 +51,15 @@ end
group :development do group :development do
gem "annotate" gem "annotate"
gem "database_cleaner", require: false
gem "factory_bot_rails", require: false
gem "rspec", require: false
gem "rspec-rails", require: false
gem "rubocop" gem "rubocop"
gem "rubocop-rails" gem "rubocop-rails"
end
group :test do
gem "database_cleaner-active_record"
gem "factory_bot_rails"
gem "rspec"
gem "rspec-rails"
gem "shoulda-matchers" gem "shoulda-matchers"
gem "timecop" gem "timecop"
gem "webmock" gem "webmock"

عرض الملف

@@ -1,70 +1,83 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
actioncable (7.0.8.1) abbrev (0.1.2)
actionpack (= 7.0.8.1) actioncable (7.1.5.2)
activesupport (= 7.0.8.1) actionpack (= 7.1.5.2)
activesupport (= 7.1.5.2)
nio4r (~> 2.0) nio4r (~> 2.0)
websocket-driver (>= 0.6.1) websocket-driver (>= 0.6.1)
actionmailbox (7.0.8.1) zeitwerk (~> 2.6)
actionpack (= 7.0.8.1) actionmailbox (7.1.5.2)
activejob (= 7.0.8.1) actionpack (= 7.1.5.2)
activerecord (= 7.0.8.1) activejob (= 7.1.5.2)
activestorage (= 7.0.8.1) activerecord (= 7.1.5.2)
activesupport (= 7.0.8.1) activestorage (= 7.1.5.2)
activesupport (= 7.1.5.2)
mail (>= 2.7.1) mail (>= 2.7.1)
net-imap net-imap
net-pop net-pop
net-smtp net-smtp
actionmailer (7.0.8.1) actionmailer (7.1.5.2)
actionpack (= 7.0.8.1) actionpack (= 7.1.5.2)
actionview (= 7.0.8.1) actionview (= 7.1.5.2)
activejob (= 7.0.8.1) activejob (= 7.1.5.2)
activesupport (= 7.0.8.1) activesupport (= 7.1.5.2)
mail (~> 2.5, >= 2.5.4) mail (~> 2.5, >= 2.5.4)
net-imap net-imap
net-pop net-pop
net-smtp net-smtp
rails-dom-testing (~> 2.0) rails-dom-testing (~> 2.2)
actionpack (7.0.8.1) actionpack (7.1.5.2)
actionview (= 7.0.8.1) actionview (= 7.1.5.2)
activesupport (= 7.0.8.1) activesupport (= 7.1.5.2)
rack (~> 2.0, >= 2.2.4) nokogiri (>= 1.8.5)
racc
rack (>= 2.2.4)
rack-session (>= 1.0.1)
rack-test (>= 0.6.3) rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0) rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.0, >= 1.2.0) rails-html-sanitizer (~> 1.6)
actiontext (7.0.8.1) actiontext (7.1.5.2)
actionpack (= 7.0.8.1) actionpack (= 7.1.5.2)
activerecord (= 7.0.8.1) activerecord (= 7.1.5.2)
activestorage (= 7.0.8.1) activestorage (= 7.1.5.2)
activesupport (= 7.0.8.1) activesupport (= 7.1.5.2)
globalid (>= 0.6.0) globalid (>= 0.6.0)
nokogiri (>= 1.8.5) nokogiri (>= 1.8.5)
actionview (7.0.8.1) actionview (7.1.5.2)
activesupport (= 7.0.8.1) activesupport (= 7.1.5.2)
builder (~> 3.1) builder (~> 3.1)
erubi (~> 1.4) erubi (~> 1.11)
rails-dom-testing (~> 2.0) rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.1, >= 1.2.0) rails-html-sanitizer (~> 1.6)
activejob (7.0.8.1) activejob (7.1.5.2)
activesupport (= 7.0.8.1) activesupport (= 7.1.5.2)
globalid (>= 0.3.6) globalid (>= 0.3.6)
activemodel (7.0.8.1) activemodel (7.1.5.2)
activesupport (= 7.0.8.1) activesupport (= 7.1.5.2)
activerecord (7.0.8.1) activerecord (7.1.5.2)
activemodel (= 7.0.8.1) activemodel (= 7.1.5.2)
activesupport (= 7.0.8.1) activesupport (= 7.1.5.2)
activestorage (7.0.8.1) timeout (>= 0.4.0)
actionpack (= 7.0.8.1) activestorage (7.1.5.2)
activejob (= 7.0.8.1) actionpack (= 7.1.5.2)
activerecord (= 7.0.8.1) activejob (= 7.1.5.2)
activesupport (= 7.0.8.1) activerecord (= 7.1.5.2)
activesupport (= 7.1.5.2)
marcel (~> 1.0) marcel (~> 1.0)
mini_mime (>= 1.1.0) activesupport (7.1.5.2)
activesupport (7.0.8.1) base64
benchmark (>= 0.3)
bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2) concurrent-ruby (~> 1.0, >= 1.0.2)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2) i18n (>= 1.6, < 2)
logger (>= 1.4.2)
minitest (>= 5.1) minitest (>= 5.1)
mutex_m
securerandom (>= 0.3)
tzinfo (~> 2.0) tzinfo (~> 2.0)
addressable (2.8.6) addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0) public_suffix (>= 2.0.2, < 6.0)
@@ -74,13 +87,14 @@ GEM
rake (>= 10.4, < 14.0) rake (>= 10.4, < 14.0)
ast (2.4.2) ast (2.4.2)
attr_required (1.0.2) attr_required (1.0.2)
authie (4.1.3) authie (5.0.0)
activerecord (>= 6.1, < 8.0) activerecord (>= 6.1, < 9.0)
autoprefixer-rails (10.4.13.0) autoprefixer-rails (10.4.13.0)
execjs (~> 2) execjs (~> 2)
base64 (0.2.0) base64 (0.3.0)
bcrypt (3.1.20) bcrypt (3.1.20)
bigdecimal (3.1.6) benchmark (0.4.1)
bigdecimal (3.2.3)
bindata (2.5.0) bindata (2.5.0)
builder (3.2.4) builder (3.2.4)
chronic (0.10.2) chronic (0.10.2)
@@ -91,26 +105,25 @@ GEM
coffee-script-source coffee-script-source
execjs execjs
coffee-script-source (1.12.2) coffee-script-source (1.12.2)
concurrent-ruby (1.2.3) concurrent-ruby (1.3.5)
connection_pool (2.5.4)
crack (1.0.0) crack (1.0.0)
bigdecimal bigdecimal
rexml rexml
crass (1.0.6) crass (1.0.6)
database_cleaner (2.0.2) database_cleaner-active_record (2.2.2)
database_cleaner-active_record (>= 2, < 3)
database_cleaner-active_record (2.1.0)
activerecord (>= 5.a) activerecord (>= 5.a)
database_cleaner-core (~> 2.0.0) database_cleaner-core (~> 2.0)
database_cleaner-core (2.0.1) database_cleaner-core (2.0.1)
date (3.3.4) date (3.3.4)
diff-lcs (1.5.0) diff-lcs (1.6.2)
domain_name (0.6.20240107) domain_name (0.6.20240107)
dotenv (3.0.2) dotenv (3.0.2)
dynamic_form (1.3.1) drb (2.2.3)
actionview (> 5.2.0) dynamic_form (1.2.0)
activemodel (> 5.2.0)
email_validator (2.2.4) email_validator (2.2.4)
activemodel activemodel
erb (5.0.2)
erubi (1.12.0) erubi (1.12.0)
execjs (2.7.0) execjs (2.7.0)
factory_bot (6.4.6) factory_bot (6.4.6)
@@ -127,7 +140,7 @@ GEM
ffi (1.15.5) ffi (1.15.5)
gelf (3.1.0) gelf (3.1.0)
json json
globalid (1.2.1) globalid (1.3.0)
activesupport (>= 6.1) activesupport (>= 6.1)
haml (6.3.0) haml (6.3.0)
temple (>= 0.8.2) temple (>= 0.8.2)
@@ -136,8 +149,13 @@ GEM
hashdiff (1.1.0) hashdiff (1.1.0)
hashie (5.0.0) hashie (5.0.0)
highline (2.1.0) highline (2.1.0)
i18n (1.14.1) i18n (1.14.7)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
io-console (0.8.1)
irb (1.15.2)
pp (>= 0.6.0)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
jquery-rails (4.5.1) jquery-rails (4.5.1)
rails-dom-testing (>= 1, < 3) rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0) railties (>= 4.2.0)
@@ -170,6 +188,7 @@ GEM
rouge (>= 3.30, < 5.0) rouge (>= 3.30, < 5.0)
konfig-config (3.0.0) konfig-config (3.0.0)
hashie hashie
logger (1.7.0)
loofah (2.22.0) loofah (2.22.0)
crass (~> 1.0.2) crass (~> 1.0.2)
nokogiri (>= 1.12.0) nokogiri (>= 1.12.0)
@@ -178,11 +197,10 @@ GEM
net-imap net-imap
net-pop net-pop
net-smtp net-smtp
marcel (1.0.2) marcel (1.1.0)
method_source (1.0.0)
mini_mime (1.1.5) mini_mime (1.1.5)
mini_portile2 (2.8.5) minitest (5.25.5)
minitest (5.22.2) mutex_m (0.3.0)
mysql2 (0.5.6) mysql2 (0.5.6)
net-http (0.4.1) net-http (0.4.1)
uri uri
@@ -200,16 +218,13 @@ GEM
activerecord (>= 4.0.0) activerecord (>= 4.0.0)
activesupport (>= 4.0.0) activesupport (>= 4.0.0)
nio4r (2.7.0) nio4r (2.7.0)
nokogiri (1.16.2) nokogiri (1.18.10-aarch64-linux-gnu)
mini_portile2 (~> 2.8.2)
racc (~> 1.4) racc (~> 1.4)
nokogiri (1.16.2-aarch64-linux) nokogiri (1.18.10-arm64-darwin)
racc (~> 1.4) racc (~> 1.4)
nokogiri (1.16.2-arm64-darwin) nokogiri (1.18.10-x86_64-darwin)
racc (~> 1.4) racc (~> 1.4)
nokogiri (1.16.2-x86_64-darwin) nokogiri (1.18.10-x86_64-linux-gnu)
racc (~> 1.4)
nokogiri (1.16.2-x86_64-linux)
racc (~> 1.4) racc (~> 1.4)
omniauth (2.1.2) omniauth (2.1.2)
hashie (>= 3.4.6) hashie (>= 3.4.6)
@@ -234,15 +249,22 @@ GEM
tzinfo tzinfo
validate_url validate_url
webfinger (~> 2.0) webfinger (~> 2.0)
ostruct (0.6.3)
parallel (1.22.1) parallel (1.22.1)
parser (3.2.1.1) parser (3.2.1.1)
ast (~> 2.4.1) ast (~> 2.4.1)
pp (0.6.2)
prettyprint
prettyprint (0.2.0)
prometheus-client (4.2.2) prometheus-client (4.2.2)
psych (5.2.6)
date
stringio
public_suffix (5.0.4) public_suffix (5.0.4)
puma (6.4.2) puma (6.4.2)
nio4r (~> 2.0) nio4r (~> 2.0)
racc (1.7.3) racc (1.8.1)
rack (2.2.8.1) rack (3.2.1)
rack-oauth2 (2.2.1) rack-oauth2 (2.2.1)
activesupport activesupport
attr_required attr_required
@@ -250,25 +272,31 @@ GEM
faraday-follow_redirects faraday-follow_redirects
json-jwt (>= 1.11.0) json-jwt (>= 1.11.0)
rack (>= 2.1.0) rack (>= 2.1.0)
rack-protection (3.2.0) rack-protection (4.1.1)
base64 (>= 0.1.0) base64 (>= 0.1.0)
rack (~> 2.2, >= 2.2.4) logger (>= 1.6.0)
rack (>= 3.0.0, < 4)
rack-session (2.1.1)
base64 (>= 0.1.0)
rack (>= 3.0.0)
rack-test (2.1.0) rack-test (2.1.0)
rack (>= 1.3) rack (>= 1.3)
rails (7.0.8.1) rackup (2.2.1)
actioncable (= 7.0.8.1) rack (>= 3)
actionmailbox (= 7.0.8.1) rails (7.1.5.2)
actionmailer (= 7.0.8.1) actioncable (= 7.1.5.2)
actionpack (= 7.0.8.1) actionmailbox (= 7.1.5.2)
actiontext (= 7.0.8.1) actionmailer (= 7.1.5.2)
actionview (= 7.0.8.1) actionpack (= 7.1.5.2)
activejob (= 7.0.8.1) actiontext (= 7.1.5.2)
activemodel (= 7.0.8.1) actionview (= 7.1.5.2)
activerecord (= 7.0.8.1) activejob (= 7.1.5.2)
activestorage (= 7.0.8.1) activemodel (= 7.1.5.2)
activesupport (= 7.0.8.1) activerecord (= 7.1.5.2)
activestorage (= 7.1.5.2)
activesupport (= 7.1.5.2)
bundler (>= 1.15.0) bundler (>= 1.15.0)
railties (= 7.0.8.1) railties (= 7.1.5.2)
rails-dom-testing (2.2.0) rails-dom-testing (2.2.0)
activesupport (>= 5.0.0) activesupport (>= 5.0.0)
minitest minitest
@@ -276,31 +304,37 @@ GEM
rails-html-sanitizer (1.6.0) rails-html-sanitizer (1.6.0)
loofah (~> 2.21) loofah (~> 2.21)
nokogiri (~> 1.14) nokogiri (~> 1.14)
railties (7.0.8.1) railties (7.1.5.2)
actionpack (= 7.0.8.1) actionpack (= 7.1.5.2)
activesupport (= 7.0.8.1) activesupport (= 7.1.5.2)
method_source irb
rackup (>= 1.0.0)
rake (>= 12.2) rake (>= 12.2)
thor (~> 1.0) thor (~> 1.0, >= 1.2.2)
zeitwerk (~> 2.5) zeitwerk (~> 2.6)
rainbow (3.1.1) rainbow (3.1.1)
rake (13.1.0) rake (13.1.0)
rdoc (6.14.2)
erb
psych (>= 4.0.0)
regexp_parser (2.7.0) regexp_parser (2.7.0)
reline (0.6.2)
io-console (~> 0.5)
resolv (0.3.0) resolv (0.3.0)
rexml (3.2.5) rexml (3.2.5)
rouge (4.2.0) rouge (4.2.0)
rspec (3.12.0) rspec (3.13.1)
rspec-core (~> 3.12.0) rspec-core (~> 3.13.0)
rspec-expectations (~> 3.12.0) rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.12.0) rspec-mocks (~> 3.13.0)
rspec-core (3.12.1) rspec-core (3.13.5)
rspec-support (~> 3.12.0) rspec-support (~> 3.13.0)
rspec-expectations (3.12.2) rspec-expectations (3.13.5)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0) rspec-support (~> 3.13.0)
rspec-mocks (3.12.4) rspec-mocks (3.13.5)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0) rspec-support (~> 3.13.0)
rspec-rails (6.1.1) rspec-rails (6.1.1)
actionpack (>= 6.1) actionpack (>= 6.1)
activesupport (>= 6.1) activesupport (>= 6.1)
@@ -309,7 +343,7 @@ GEM
rspec-expectations (~> 3.12) rspec-expectations (~> 3.12)
rspec-mocks (~> 3.12) rspec-mocks (~> 3.12)
rspec-support (~> 3.12) rspec-support (~> 3.12)
rspec-support (3.12.0) rspec-support (3.13.6)
rubocop (1.48.1) rubocop (1.48.1)
json (~> 2.3) json (~> 2.3)
parallel (~> 1.10) parallel (~> 1.10)
@@ -338,6 +372,7 @@ GEM
sprockets-rails sprockets-rails
tilt tilt
secure_headers (6.5.0) secure_headers (6.5.0)
securerandom (0.4.1)
sentry-rails (5.16.1) sentry-rails (5.16.1)
railties (>= 5.0) railties (>= 5.0)
sentry-ruby (~> 5.16.1) sentry-ruby (~> 5.16.1)
@@ -352,6 +387,7 @@ GEM
actionpack (>= 5.2) actionpack (>= 5.2)
activesupport (>= 5.2) activesupport (>= 5.2)
sprockets (>= 3.0.0) sprockets (>= 3.0.0)
stringio (3.1.7)
swd (2.0.3) swd (2.0.3)
activesupport (>= 3) activesupport (>= 3)
attr_required (>= 0.0.5) attr_required (>= 0.0.5)
@@ -361,7 +397,7 @@ GEM
thor (1.3.0) thor (1.3.0)
tilt (2.3.0) tilt (2.3.0)
timecop (0.9.8) timecop (0.9.8)
timeout (0.4.1) timeout (0.4.3)
turbolinks (5.2.1) turbolinks (5.2.1)
turbolinks-source (~> 5.2) turbolinks-source (~> 5.2)
turbolinks-source (5.2.0) turbolinks-source (5.2.0)
@@ -383,7 +419,8 @@ GEM
crack (>= 0.3.2) crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0) hashdiff (>= 0.4.0, < 2.0.0)
webrick (1.8.1) webrick (1.8.1)
websocket-driver (0.7.6) websocket-driver (0.8.0)
base64
websocket-extensions (>= 0.1.0) websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5) websocket-extensions (0.1.5)
zeitwerk (2.6.13) zeitwerk (2.6.13)
@@ -391,18 +428,18 @@ GEM
PLATFORMS PLATFORMS
aarch64-linux aarch64-linux
arm64-darwin arm64-darwin
ruby
x86_64-darwin x86_64-darwin
x86_64-linux x86_64-linux
DEPENDENCIES DEPENDENCIES
abbrev
annotate annotate
authie authie
autoprefixer-rails autoprefixer-rails
bcrypt bcrypt
chronic chronic
coffee-rails (~> 5.0) coffee-rails (~> 5.0)
database_cleaner database_cleaner-active_record
domain_name domain_name
dotenv dotenv
dynamic_form dynamic_form
@@ -417,16 +454,19 @@ DEPENDENCIES
kaminari kaminari
klogger-logger klogger-logger
konfig-config (~> 3.0) konfig-config (~> 3.0)
logger
mail mail
mutex_m
mysql2 mysql2
nifty-utils nifty-utils
nilify_blanks nilify_blanks
nio4r nio4r
omniauth-rails_csrf_protection omniauth-rails_csrf_protection
omniauth_openid_connect omniauth_openid_connect
ostruct
prometheus-client prometheus-client
puma puma
rails (= 7.0.8.1) rails (= 7.1.5.2)
resolv resolv
rspec rspec
rspec-rails rspec-rails
@@ -443,4 +483,4 @@ DEPENDENCIES
webrick webrick
BUNDLED WITH BUNDLED WITH
2.5.6 2.7.2

عرض الملف

@@ -31,7 +31,7 @@ class Credential < ApplicationRecord
validate :validate_key_cannot_be_changed validate :validate_key_cannot_be_changed
validate :validate_key_for_smtp_ip validate :validate_key_for_smtp_ip
serialize :options, Hash serialize :options, type: Hash
before_validation :generate_key before_validation :generate_key

عرض الملف

@@ -34,7 +34,7 @@ class WebhookRequest < ApplicationRecord
validates :url, presence: true validates :url, presence: true
validates :event, presence: true validates :event, presence: true
serialize :payload, Hash serialize :payload, type: Hash
class << self class << self

عرض الملف

@@ -6,7 +6,7 @@ Rails.application.configure do
# In the development environment your application's code is reloaded on # In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development # every request. This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes. # since you don't have to restart the web server when you make code changes.
config.cache_classes = false config.enable_reloading = true
# Do not eager load code on boot. # Do not eager load code on boot.
config.eager_load = false config.eager_load = false

عرض الملف

@@ -4,7 +4,7 @@ Rails.application.configure do
# Settings specified here will take precedence over those in config/application.rb. # Settings specified here will take precedence over those in config/application.rb.
# Code is not reloaded between requests. # Code is not reloaded between requests.
config.cache_classes = true config.enable_reloading = false
# Eager load code on boot. This eager loads most of Rails and # Eager load code on boot. This eager loads most of Rails and
# your application in memory, allowing both threaded web servers # your application in memory, allowing both threaded web servers

عرض الملف

@@ -7,7 +7,7 @@ Rails.application.configure do
# test suite. You never need to work with it otherwise. Remember that # test suite. You never need to work with it otherwise. Remember that
# your test database is "scratch space" for the test suite and is wiped # your test database is "scratch space" for the test suite and is wiped
# and recreated between test runs. Don't rely on the data there! # and recreated between test runs. Don't rely on the data there!
config.cache_classes = true config.enable_reloading = false
# Do not eager load code on boot. This avoids loading your whole application # Do not eager load code on boot. This avoids loading your whole application
# just for the purpose of running a single test. If you are using a tool that # just for the purpose of running a single test. If you are using a tool that

عرض الملف

@@ -1,8 +1,8 @@
# frozen_string_literal: true # frozen_string_literal: true
if Postal::Config.rails.secret_key if Postal::Config.rails.secret_key
Rails.application.secrets.secret_key_base = Postal::Config.rails.secret_key Rails.application.credentials.secret_key_base = Postal::Config.rails.secret_key
else else
warn "No secret key was specified in the Postal config file. Using one for just this session" warn "No secret key was specified in the Postal config file. Using one for just this session"
Rails.application.secrets.secret_key_base = SecureRandom.hex(128) Rails.application.credentials.secret_key_base = SecureRandom.hex(128)
end end

عرض الملف

@@ -120,6 +120,8 @@ describe Server do
end end
describe "deletion" do describe "deletion" do
let(:server) { create(:server) }
it "removes the database" do it "removes the database" do
expect(server.message_db.provisioner).to receive(:drop).once expect(server.message_db.provisioner).to receive(:drop).once
server.provision_database = true server.provision_database = true

عرض الملف

@@ -10,14 +10,12 @@ require "rspec/rails"
require "spec_helper" require "spec_helper"
require "factory_bot" require "factory_bot"
require "timecop" require "timecop"
require "database_cleaner"
require "webmock/rspec" require "webmock/rspec"
require "shoulda-matchers" require "shoulda-matchers"
DatabaseCleaner.allow_remote_database_url = true DatabaseCleaner.allow_remote_database_url = true
ActiveRecord::Base.logger = Logger.new("/dev/null") ActiveRecord::Base.logger = Logger.new("/dev/null")
Dir[File.expand_path("factories/*.rb", __dir__)].each { |f| require f }
Dir[File.expand_path("helpers/**/*.rb", __dir__)].each { |f| require f } Dir[File.expand_path("helpers/**/*.rb", __dir__)].each { |f| require f }
ActionMailer::Base.delivery_method = :test ActionMailer::Base.delivery_method = :test

عرض الملف

@@ -59,8 +59,11 @@ RSpec.describe WebhookDeliveryService do
end end
it "updates the last used at time on the webhook" do it "updates the last used at time on the webhook" do
service.call frozen_time = Time.current.change(usec: 0)
expect(webhook.reload.last_used_at).to be_within(1.second).of(Time.current) Timecop.freeze(frozen_time) do
service.call
expect(webhook.reload.last_used_at).to eq(frozen_time)
end
end end
end end