This is part of the Semicolon&Sons Code Diary - consisting of lessons learned on the job. You're in the testing category.
Last Updated: 2024-10-12
I had the following code in my sitemap generator:
if Rails.env.production?
SitemapGenerator::Sitemap.adapter =
SitemapGenerator::AwsSdkAdapter.new(
MyConfig['s3_bucket'],
aws_access_key_id: MyConfig['s3_access_key'],
aws_secret_access_key: MyConfig['s3_secret'],
aws_region: MyConfig['s3_bucket_region']
)
end
SitemapGenerator::Sitemap.create do
# ... actually generate sitemap
end
The integration tests worked for this and I deployed.
Later I discovered it had a production bug. That's because the AwsSdkAdapter
class was not in scope.
The fix was as follows:
if Rails.env.production?
#! NEW CODE #!
require 'aws-sdk-s3'
SitemapGenerator::Sitemap.adapter =
SitemapGenerator::AwsSdkAdapter.new(
MyConfig['s3_bucket'],
aws_access_key_id: MyConfig['s3_access_key'],
aws_secret_access_key: MyConfig['s3_secret'],
aws_region: MyConfig['s3_bucket_region']
)
end
if Rails.env.production?
and try them out with manual QA
session.