mirror of
https://github.com/manyfold3d/manyfold.git
synced 2026-10-22 19:52:18 -05:00
91 lines
2.5 KiB
Ruby
91 lines
2.5 KiB
Ruby
require "rails_helper"
|
|
|
|
# user_settings GET /users/:user_id/settings(.:format) settings#show
|
|
# PATCH /users/:user_id/settings(.:format) settings#update
|
|
# PUT /users/:user_id/settings(.:format) settings#update
|
|
|
|
RSpec.describe "Settings" do
|
|
context "when signed out" do
|
|
describe "GET /settings" do
|
|
it "returns access denied" do
|
|
get "/settings"
|
|
expect(response).to redirect_to("/users/sign_in")
|
|
end
|
|
end
|
|
end
|
|
|
|
context "when signed in", :as_contributor do
|
|
describe "GET /settings" do
|
|
it "returns not found" do
|
|
get "/settings"
|
|
expect(response).to have_http_status(:not_found)
|
|
end
|
|
end
|
|
end
|
|
|
|
context "when signed in", :as_administrator do
|
|
describe "GET /settings" do
|
|
it "returns http success" do
|
|
get "/settings"
|
|
expect(response).to have_http_status(:success)
|
|
end
|
|
end
|
|
|
|
describe "PATCH /settings" do
|
|
it "redirects back to settings on success" do
|
|
patch "/settings"
|
|
expect(response).to redirect_to("/settings")
|
|
end
|
|
|
|
context "with folder settings params" do
|
|
let(:params) {
|
|
{
|
|
folders: {
|
|
model_path_template: "test/{tags}/{modelName}{modelId}",
|
|
parse_metadata_from_path: "1",
|
|
safe_folder_names: "0"
|
|
}
|
|
}
|
|
}
|
|
|
|
before do
|
|
SiteSettings.model_path_template = "before"
|
|
SiteSettings.parse_metadata_from_path = false
|
|
SiteSettings.safe_folder_names = true
|
|
patch "/settings", params: params
|
|
end
|
|
|
|
it "saves path template" do
|
|
expect(SiteSettings.model_path_template).to eq "test/{tags}/{modelName}{modelId}"
|
|
end
|
|
|
|
it "saves parsing setting" do
|
|
expect(SiteSettings.parse_metadata_from_path).to be true
|
|
end
|
|
|
|
it "saves safe folder name setting" do
|
|
expect(SiteSettings.safe_folder_names).to be false
|
|
end
|
|
end
|
|
|
|
context "with file settings params" do
|
|
let(:params) {
|
|
{
|
|
files: {
|
|
model_ignored_files: "/.*\\.lys/\n/.*\\.lyt/"
|
|
}
|
|
}
|
|
}
|
|
|
|
before do
|
|
patch "/settings", params: params
|
|
end
|
|
|
|
it "saves file ignore regexes" do
|
|
expect(SiteSettings.model_ignored_files).to contain_exactly(/.*\.lys/, /.*\.lyt/)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|