File tree Expand file tree Collapse file tree 2 files changed +40
-9
lines changed
assets/javascripts/discourse/components Expand file tree Collapse file tree 2 files changed +40
-9
lines changed Original file line number Diff line number Diff line change 11import 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" ;
55import DButton from " discourse/components/d-button" ;
66import DropdownMenu from " discourse/components/dropdown-menu" ;
77import 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"
Original file line number Diff line number Diff line change 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
You can’t perform that action at this time.
0 commit comments