DEV: Apply syntax_tree formatting to plugins/*

This commit is contained in:
David Taylor
2023-01-06 20:42:16 +00:00
parent 93e2dad656
commit 055310cea4
110 changed files with 3712 additions and 3158 deletions

View File

@ -1,9 +1,7 @@
# frozen_string_literal: true
RSpec.describe "Local Dates" do
before do
freeze_time DateTime.parse('2018-11-10 12:00')
end
before { freeze_time DateTime.parse("2018-11-10 12:00") }
it "should work without timezone" do
post = Fabricate(:post, raw: <<~MD)
@ -15,14 +13,12 @@ RSpec.describe "Local Dates" do
expect(cooked).to include('class="discourse-local-date"')
expect(cooked).to include('data-date="2018-05-08"')
expect(cooked).to include('data-format="L LTS"')
expect(cooked).not_to include('data-timezone=')
expect(cooked).not_to include("data-timezone=")
expect(cooked).to include(
'data-timezones="Europe/Paris|America/Los_Angeles"'
)
expect(cooked).to include('data-timezones="Europe/Paris|America/Los_Angeles"')
expect(cooked).to include('data-email-preview="2018-05-08T22:00:00Z UTC"')
expect(cooked).to include('05/08/2018 10:00:00 PM')
expect(cooked).to include("05/08/2018 10:00:00 PM")
end
it "should work with timezone" do
@ -33,10 +29,10 @@ RSpec.describe "Local Dates" do
cooked = post.cooked
expect(cooked).to include('data-timezone="Asia/Calcutta"')
expect(cooked).to include('05/08/2018 4:30:00 PM')
expect(cooked).to include("05/08/2018 4:30:00 PM")
end
it 'requires the right attributes to convert to a local date' do
it "requires the right attributes to convert to a local date" do
post = Fabricate(:post, raw: <<~MD)
[date]
MD
@ -44,10 +40,10 @@ RSpec.describe "Local Dates" do
cooked = post.cooked
expect(post.cooked).to include("<p>[date]</p>")
expect(cooked).to_not include('data-date=')
expect(cooked).to_not include("data-date=")
end
it 'requires the right attributes to convert to a local date' do
it "requires the right attributes to convert to a local date" do
post = Fabricate(:post, raw: <<~MD)
[date]
MD
@ -55,48 +51,48 @@ RSpec.describe "Local Dates" do
cooked = post.cooked
expect(post.cooked).to include("<p>[date]</p>")
expect(cooked).to_not include('data-date=')
expect(cooked).to_not include("data-date=")
end
it 'it works with only a date and time' do
it "it works with only a date and time" do
raw = "[date=2018-11-01 time=12:00]"
cooked = Fabricate(:post, raw: raw).cooked
expect(cooked).to include('data-date="2018-11-01"')
expect(cooked).to include('data-time="12:00"')
end
it 'doesn’t include format by default' do
it "doesn’t include format by default" do
raw = "[date=2018-11-01 time=12:00]"
cooked = Fabricate(:post, raw: raw).cooked
expect(cooked).not_to include('data-format=')
expect(cooked).not_to include("data-format=")
end
it 'doesn’t include timezone by default' do
it "doesn’t include timezone by default" do
raw = "[date=2018-11-01 time=12:00]"
cooked = Fabricate(:post, raw: raw).cooked
expect(cooked).not_to include("data-timezone=")
end
it 'supports countdowns' do
it "supports countdowns" do
raw = "[date=2018-11-01 time=12:00 countdown=true]"
cooked = Fabricate(:post, raw: raw).cooked
expect(cooked).to include("data-countdown=")
end
describe 'ranges' do
it 'generates ranges without time' do
describe "ranges" do
it "generates ranges without time" do
raw = "[date-range from=2022-01-06 to=2022-01-08]"
cooked = Fabricate(:post, raw: raw).cooked
expect(cooked).to include('data-date="2022-01-06')
expect(cooked).to include('data-range="from"')
expect(cooked).to include('data-range="to"')
expect(cooked).not_to include('data-time=')
expect(cooked).not_to include("data-time=")
end
it 'supports time and timezone' do
it "supports time and timezone" do
raw = "[date-range from=2022-01-06T13:00 to=2022-01-08 timezone=Australia/Sydney]"
cooked = Fabricate(:post, raw: raw).cooked
@ -107,7 +103,7 @@ RSpec.describe "Local Dates" do
expect(cooked).to include('data-timezone="Australia/Sydney"')
end
it 'generates single date when range without end date' do
it "generates single date when range without end date" do
raw = "[date-range from=2022-01-06T13:00]"
cooked = Fabricate(:post, raw: raw).cooked

View File

@ -15,94 +15,118 @@ def generate_html(text, opts = {})
end
RSpec.describe PrettyText do
before do
freeze_time
end
before { freeze_time }
describe 'emails simplified rendering' do
it 'works with default markup' do
describe "emails simplified rendering" do
it "works with default markup" do
cooked = PrettyText.cook("[date=2018-05-08]")
cooked_mail = generate_html("2018-05-08T00:00:00Z UTC",
date: "2018-05-08",
email_preview: "2018-05-08T00:00:00Z UTC"
)
expect(PrettyText.format_for_email(cooked)).to match_html(cooked_mail)
end
it 'works with time' do
cooked = PrettyText.cook("[date=2018-05-08 time=20:00:00]")
cooked_mail = generate_html("2018-05-08T20:00:00Z UTC",
date: "2018-05-08",
email_preview: "2018-05-08T20:00:00Z UTC",
time: "20:00:00"
)
expect(PrettyText.format_for_email(cooked)).to match_html(cooked_mail)
end
it 'works with multiple timezones' do
cooked = PrettyText.cook('[date=2018-05-08 timezone="Europe/Paris" timezones="America/Los_Angeles|Pacific/Auckland"]')
cooked_mail = generate_html("2018-05-07T22:00:00Z UTC",
date: "2018-05-08",
email_preview: "2018-05-07T22:00:00Z UTC",
timezone: "Europe/Paris",
timezones: "America/Los_Angeles|Pacific/Auckland"
)
expect(PrettyText.format_for_email(cooked)).to match_html(cooked_mail)
end
describe 'discourse_local_dates_email_format' do
before do
SiteSetting.discourse_local_dates_email_format = "DD/MM"
end
it 'uses the site setting' do
cooked = PrettyText.cook("[date=2018-05-08]")
cooked_mail = generate_html("08/05 UTC",
cooked_mail =
generate_html(
"2018-05-08T00:00:00Z UTC",
date: "2018-05-08",
email_preview: "08/05 UTC"
email_preview: "2018-05-08T00:00:00Z UTC",
)
expect(PrettyText.format_for_email(cooked)).to match_html(cooked_mail)
end
it "works with time" do
cooked = PrettyText.cook("[date=2018-05-08 time=20:00:00]")
cooked_mail =
generate_html(
"2018-05-08T20:00:00Z UTC",
date: "2018-05-08",
email_preview: "2018-05-08T20:00:00Z UTC",
time: "20:00:00",
)
expect(PrettyText.format_for_email(cooked)).to match_html(cooked_mail)
end
it "works with multiple timezones" do
cooked =
PrettyText.cook(
'[date=2018-05-08 timezone="Europe/Paris" timezones="America/Los_Angeles|Pacific/Auckland"]',
)
cooked_mail =
generate_html(
"2018-05-07T22:00:00Z UTC",
date: "2018-05-08",
email_preview: "2018-05-07T22:00:00Z UTC",
timezone: "Europe/Paris",
timezones: "America/Los_Angeles|Pacific/Auckland",
)
expect(PrettyText.format_for_email(cooked)).to match_html(cooked_mail)
end
describe "discourse_local_dates_email_format" do
before { SiteSetting.discourse_local_dates_email_format = "DD/MM" }
it "uses the site setting" do
cooked = PrettyText.cook("[date=2018-05-08]")
cooked_mail = generate_html("08/05 UTC", date: "2018-05-08", email_preview: "08/05 UTC")
expect(PrettyText.format_for_email(cooked)).to match_html(cooked_mail)
end
end
end
describe 'excerpt simplified rendering' do
let(:post) { Fabricate(:post, raw: '[date=2019-10-16 time=14:00:00 format="LLLL" timezone="America/New_York"]') }
describe "excerpt simplified rendering" do
let(:post) do
Fabricate(
:post,
raw: '[date=2019-10-16 time=14:00:00 format="LLLL" timezone="America/New_York"]',
)
end
it 'adds UTC' do
it "adds UTC" do
excerpt = PrettyText.excerpt(post.cooked, 200)
expect(excerpt).to eq("Wednesday, October 16, 2019 6:00 PM (UTC)")
end
end
describe 'special quotes' do
it 'converts special quotes to regular quotes' do
describe "special quotes" do
it "converts special quotes to regular quotes" do
# german
post = Fabricate(:post, raw: '[date=2019-10-16 time=14:00:00 format="LLLL" timezone=„America/New_York“]')
post =
Fabricate(
:post,
raw: '[date=2019-10-16 time=14:00:00 format="LLLL" timezone=„America/New_York“]',
)
excerpt = PrettyText.excerpt(post.cooked, 200)
expect(excerpt).to eq('Wednesday, October 16, 2019 6:00 PM (UTC)')
expect(excerpt).to eq("Wednesday, October 16, 2019 6:00 PM (UTC)")
# french
post = Fabricate(:post, raw: '[date=2019-10-16 time=14:00:00 format="LLLL" timezone=«America/New_York»]')
post =
Fabricate(
:post,
raw: '[date=2019-10-16 time=14:00:00 format="LLLL" timezone=«America/New_York»]',
)
excerpt = PrettyText.excerpt(post.cooked, 200)
expect(excerpt).to eq('Wednesday, October 16, 2019 6:00 PM (UTC)')
expect(excerpt).to eq("Wednesday, October 16, 2019 6:00 PM (UTC)")
post = Fabricate(:post, raw: '[date=2019-10-16 time=14:00:00 format="LLLL" timezone=“America/New_York”]')
post =
Fabricate(
:post,
raw: '[date=2019-10-16 time=14:00:00 format="LLLL" timezone=“America/New_York”]',
)
excerpt = PrettyText.excerpt(post.cooked, 200)
expect(excerpt).to eq('Wednesday, October 16, 2019 6:00 PM (UTC)')
expect(excerpt).to eq("Wednesday, October 16, 2019 6:00 PM (UTC)")
end
end
describe 'french quotes' do
let(:post) { Fabricate(:post, raw: '[date=2019-10-16 time=14:00:00 format="LLLL" timezone=«America/New_York»]') }
describe "french quotes" do
let(:post) do
Fabricate(
:post,
raw: '[date=2019-10-16 time=14:00:00 format="LLLL" timezone=«America/New_York»]',
)
end
it 'converts french quotes to regular quotes' do
it "converts french quotes to regular quotes" do
excerpt = PrettyText.excerpt(post.cooked, 200)
expect(excerpt).to eq('Wednesday, October 16, 2019 6:00 PM (UTC)')
expect(excerpt).to eq("Wednesday, October 16, 2019 6:00 PM (UTC)")
end
end
end

View File

@ -1,12 +1,9 @@
# frozen_string_literal: true
RSpec.describe Post do
before { Jobs.run_immediately! }
before do
Jobs.run_immediately!
end
describe '#local_dates' do
describe "#local_dates" do
it "should have correct custom fields" do
post = Fabricate(:post, raw: <<~SQL)
[date=2018-09-17 time=01:39:00 format="LLL" timezone="Europe/Paris" timezones="Europe/Paris|America/Los_Angeles"]
@ -37,7 +34,7 @@ RSpec.describe Post do
end
it "should not contain dates from examples" do
Oneboxer.stubs(:cached_onebox).with('https://example.com').returns(<<-HTML)
Oneboxer.stubs(:cached_onebox).with("https://example.com").returns(<<-HTML)
<aside class="onebox githubcommit">
<span class="discourse-local-date" data-format="ll" data-date="2020-01-20" data-time="15:06:58" data-timezone="UTC">03:06PM - 20 Jan 20 UTC</span>
</aside>
@ -48,5 +45,4 @@ RSpec.describe Post do
expect(post.local_dates.count).to eq(0)
end
end
end

View File

@ -4,18 +4,11 @@ describe "Local dates", type: :system, js: true do
fab!(:topic) { Fabricate(:topic) }
fab!(:user) { Fabricate(:user) }
before do
create_post(
user: user,
topic: topic,
title: "Date range test post",
raw: <<~RAW
before { create_post(user: user, topic: topic, title: "Date range test post", raw: <<~RAW) }
First option: [date=2022-12-15 time=14:19:00 timezone="Asia/Singapore"]
Second option: [date=2022-12-15 time=01:20:00 timezone="Asia/Singapore"], or [date=2022-12-15 time=02:40:00 timezone="Asia/Singapore"]
Third option: [date-range from=2022-12-15T11:25:00 to=2022-12-16T00:26:00 timezone="Asia/Singapore"] or [date-range from=2022-12-22T11:57:00 to=2022-12-23T11:58:00 timezone="Asia/Singapore"]
RAW
)
end
let(:topic_page) { PageObjects::Pages::Topic.new }
@ -53,12 +46,18 @@ describe "Local dates", type: :system, js: true do
post_dates[3].click
tippy_date = topic_page.find(".tippy-content .current .date-time")
expect(tippy_date).to have_text("Thursday, December 15, 2022\n11:25 AM → 12:26 AM", exact: true)
expect(tippy_date).to have_text(
"Thursday, December 15, 2022\n11:25 AM → 12:26 AM",
exact: true,
)
post_dates[5].click
tippy_date = topic_page.find(".tippy-content .current .date-time")
expect(tippy_date).to have_text("Thursday, December 22, 2022 11:57 AM → Friday, December 23, 2022 11:58 AM", exact: true)
expect(tippy_date).to have_text(
"Thursday, December 22, 2022 11:57 AM → Friday, December 23, 2022 11:58 AM",
exact: true,
)
end
end
end