discourse/lib/theme_store/directory_importer.rb
Alan Guo Xiang Tan d2e4b32c87
DEV: Add support for uploading a theme from a directory in system tests (#23402)
Why this change?

Currently, we do not have an easy way to test themes and theme components
using Rails system tests. While we support QUnit acceptance tests for
themes and theme components, QUnit acceptance tests stubs out the server
and setting up the fixtures for server responses is difficult and can lead to a
frustrating experience. System tests on the other hand allow authors to
set up the test fixtures using our fabricator system which is much
easier to use.

What does this change do?

In order for us to allow authors to run system tests with their themes
installed, we are adding a `upload_theme` helper that is made available
when writing system tests. The `upload_theme` helper requires a single
`directory` parameter where `directory` is the directory of the theme
locally and returns a `Theme` record.
2023-09-12 07:38:47 +08:00

15 lines
282 B
Ruby

# frozen_string_literal: true
module ThemeStore
class DirectoryImporter < BaseImporter
def initialize(theme_dir)
@theme_dir = theme_dir
end
def import!
FileUtils.mkdir_p(temp_folder)
FileUtils.cp_r("#{@theme_dir}/.", temp_folder)
end
end
end