|
| 1 | +require 'rails_helper' |
| 2 | +require_relative '../../../lib/tasks/update_organogram_filenames.rb' |
| 3 | + |
| 4 | +describe UpdateOrganogramFilenames do |
| 5 | + before do |
| 6 | + @link1 = FactoryBot.create(:link, url: "https://amazonaws.com/datagovuk/dataset/resources/organogram-senior-posts-2019-06-06T11-18-26Z.csv") |
| 7 | + @link2 = FactoryBot.create(:link, url: "https://amazonaws.com/datagovuk/dataset/resources/organogram-junior-posts-2019-06-06T11-18-30Z.csv") |
| 8 | + File.write("sample_urls.csv", "https://amazonaws.com/datagovuk/dataset/resources/organogram-senior-posts-2019-06-06T11-18-26Z.csv, https://amazonaws.com/datagovuk/dataset/resources/2019-06-06T11-18-26Z-organogram-senior.csv\nhttps://amazonaws.com/datagovuk/dataset/resources/organogram-junior-posts-2019-06-06T11-18-30Z.csv, https://amazonaws.com/datagovuk/dataset/resources/2019-06-06T11-18-26Z-organogram-junior.csv") |
| 9 | + end |
| 10 | + |
| 11 | + context "when parsing a CSV file" do |
| 12 | + it "should set old_urls and new_urls array if it contains data" do |
| 13 | + update_organogram_filenames = UpdateOrganogramFilenames.new |
| 14 | + update_organogram_filenames.parse_csv("sample_urls.csv") |
| 15 | + expect(update_organogram_filenames.instance_eval { @old_urls }.length).to be(2) |
| 16 | + expect(update_organogram_filenames.instance_eval { @new_urls }.length).to be(2) |
| 17 | + end |
| 18 | + |
| 19 | + it "should abort and return a message if it's empty" do |
| 20 | + File.write("sample_urls.csv", "") |
| 21 | + update_organogram_filenames = UpdateOrganogramFilenames.new |
| 22 | + update_organogram_filenames.parse_csv("sample_urls.csv") |
| 23 | + expect(update_organogram_filenames.replace_urls).to eql("No urls to process") |
| 24 | + end |
| 25 | + end |
| 26 | + |
| 27 | + context "when a url containing '-posts-' is found" do |
| 28 | + it "replaces the url with the correct url" do |
| 29 | + update_organogram_filenames = UpdateOrganogramFilenames.new |
| 30 | + update_organogram_filenames.parse_csv("sample_urls.csv") |
| 31 | + |
| 32 | + update_organogram_filenames.replace_urls |
| 33 | + |
| 34 | + expect(Link.all[0].url).to eql("https://amazonaws.com/datagovuk/dataset/resources/2019-06-06T11-18-26Z-organogram-senior.csv") |
| 35 | + expect(Link.all[1].url).to eql("https://amazonaws.com/datagovuk/dataset/resources/2019-06-06T11-18-26Z-organogram-junior.csv") |
| 36 | + end |
| 37 | + end |
| 38 | +end |
0 commit comments