Skip to content

Commit

Permalink
feat: add linux tests
Browse files Browse the repository at this point in the history
  • Loading branch information
SMillerDev committed Jan 19, 2025
1 parent c34b716 commit 1a8dea6
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 3 deletions.
19 changes: 16 additions & 3 deletions Library/Homebrew/os/linux.rb
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,23 @@ def self.wsl_version
def self.languages
return @languages if @languages.present?

os_langs = Utils.popen_read("localectl", "list-locales")
os_langs = os_langs.scan(/[^ \n"(),]+/).map { |item| item.split(".").first.tr("_", "-") }
locale_variables = ENV.keys.grep(/^(?:LC_\S+|LANG|LANGUAGE)\Z/).sort
ctl_ret = Utils.popen_read("localectl", "list-locales")
if ctl_ret.present?
list = ctl_ret.scan(/[^ \n"(),]+/)
elsif locale_variables.present?
keys = locale_variables.select { |var| ENV.fetch(var) }
list = locale_variables.map { |key| ENV.fetch(key) }
else
list = ["en_US.utf8"]
end

@languages = os_langs
@languages = list.map { |item| item.split(".").first.tr("_", "-") }
end

sig { returns(String) }
def self.language
languages.first
end
end
end
36 changes: 36 additions & 0 deletions Library/Homebrew/test/os/linux_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# frozen_string_literal: true

require "locale"
require "os/linux"

RSpec.describe OS::Linux do
describe "::languages" do
it "returns a list of all languages" do
expect(described_class.languages).not_to be_empty
end
end

describe "::language" do
it "returns the first item from #languages" do
expect(described_class.language).to eq(described_class.languages.first)
end
end

describe "::'os_version'" do
it "returns the OS version" do
expect(described_class.os_version).not_to be_empty
end
end

describe "::'wsl?'" do
it "returns the WSL state" do
expect(described_class.wsl?).to eq(false)
end
end

describe "::'wsl_version'" do
it "returns the WSL version" do
expect(described_class.wsl_version).to match(Version::NULL)
end
end
end

0 comments on commit 1a8dea6

Please sign in to comment.