diff --git a/lib/Router/Settings.php b/lib/Router/Settings.php index 382da6a5fd..5bbcf7ff0a 100644 --- a/lib/Router/Settings.php +++ b/lib/Router/Settings.php @@ -10,17 +10,17 @@ class Settings { function get() { $settings = Setting::getAll(); - wp_send_json($settings); + return $settings; } function set($settings = array()) { if(empty($settings)) { - wp_send_json(false); + return false; } else { foreach($settings as $name => $value) { Setting::setValue($name, $value); } - wp_send_json(true); + return true; } } } diff --git a/lib/Router/Setup.php b/lib/Router/Setup.php index 5e8183d705..4bb6bade68 100644 --- a/lib/Router/Setup.php +++ b/lib/Router/Setup.php @@ -17,8 +17,8 @@ class Setup { } catch(Exception $e) { $result = false; } - wp_send_json(array( + return array( 'result' => $result - )); + ); } } diff --git a/tests/unit/Router/SettingsCest.php b/tests/unit/Router/SettingsCest.php new file mode 100644 index 0000000000..322e9de838 --- /dev/null +++ b/tests/unit/Router/SettingsCest.php @@ -0,0 +1,50 @@ +get(); + expect($settings)->notEmpty(); + expect($settings['some']['setting']['key'])->true(); + + Setting::deleteMany(); + $settings = $router->get(); + expect($settings)->isEmpty(); + } + + function itCanSetSettings() { + $new_settings = array( + 'some' => array( + 'setting' => array( + 'new_key' => true + ), + 'new_setting' => true + ) + ); + + $router = new Settings(); + + $response = $router->set(/* missing data */); + expect($response)->false(); + + $response = $router->set($new_settings); + expect($response)->true(); + + $settings = $router->get(); + + expect($settings['some']['setting'])->hasntKey('key'); + expect($settings['some']['setting']['new_key'])->true(); + expect($settings['some']['new_setting'])->true(); + } + + function _after() { + ORM::forTable(Setting::$_table)->deleteMany(); + } +} \ No newline at end of file diff --git a/tests/unit/Router/SetupCest.php b/tests/unit/Router/SetupCest.php new file mode 100644 index 0000000000..c318bc188f --- /dev/null +++ b/tests/unit/Router/SetupCest.php @@ -0,0 +1,22 @@ +reset(); + expect($response['result'])->true(); + + $signup_confirmation = Setting::getValue('signup_confirmation.enabled'); + expect($signup_confirmation)->true(); + } + + function _after() { + ORM::forTable(Setting::$_table)->deleteMany(); + } +} \ No newline at end of file