Skip to content

Commit 368310e

Browse files
committed
Tests
1 parent 9dc24a4 commit 368310e

File tree

2 files changed

+40
-9
lines changed

2 files changed

+40
-9
lines changed

assets/javascripts/discourse/components/language-switcher.gjs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Component from "@glimmer/component";
2-
import {fn} from "@ember/helper";
3-
import {action} from "@ember/object";
4-
import {service} from "@ember/service";
2+
import { fn } from "@ember/helper";
3+
import { action } from "@ember/object";
4+
import { service } from "@ember/service";
55
import DButton from "discourse/components/d-button";
66
import DropdownMenu from "discourse/components/dropdown-menu";
77
import cookie from "discourse/lib/cookie";
@@ -13,12 +13,14 @@ export default class LanguageSwitcher extends Component {
1313
@service router;
1414

1515
get localeOptions() {
16-
return JSON.parse(this.siteSettings.available_locales).map(({ name, value }) => {
17-
return {
18-
label: name,
19-
value,
20-
};
21-
});
16+
return JSON.parse(this.siteSettings.available_locales).map(
17+
({ name, value }) => {
18+
return {
19+
label: name,
20+
value,
21+
};
22+
}
23+
);
2224
}
2325

2426
@action
@@ -36,6 +38,7 @@ export default class LanguageSwitcher extends Component {
3638

3739
<template>
3840
<DMenu
41+
@identifier="discourse-translator_language-switcher"
3942
title="Language switcher"
4043
@icon="language"
4144
class="btn-flat btn-icon icon"
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# frozen_string_literal: true
2+
3+
RSpec.describe "Anonymous user language switcher", type: :system do
4+
fab!(:japanese_user) { Fabricate(:user, locale: "ja") }
5+
it "shows the correct language based on the selected language and login status" do
6+
SWITCHER_SELECTOR = "button[data-identifier='discourse-translator_language-switcher']"
7+
8+
visit("/")
9+
expect(page).not_to have_css(SWITCHER_SELECTOR)
10+
11+
SiteSetting.translator_enabled = true
12+
SiteSetting.allow_user_locale = true
13+
SiteSetting.set_locale_from_cookie = true
14+
SiteSetting.experimental_anon_language_switcher = true
15+
visit("/")
16+
expect(page).to have_css(SWITCHER_SELECTOR)
17+
expect(find(".nav-item_latest")).to have_content("Latest")
18+
19+
switcher = PageObjects::Components::DMenu.new(SWITCHER_SELECTOR)
20+
switcher.expand
21+
switcher.click_button("Español")
22+
expect(find(".nav-item_latest")).to have_content("Recientes")
23+
24+
sign_in(japanese_user)
25+
visit("/")
26+
expect(find(".nav-item_latest")).to have_content("最新")
27+
end
28+
end

0 commit comments

Comments
 (0)