Merge pull request #228 from evolution-gaming/fix-unreliable-ApplicationSettings-test

fix: Update unreliable application settings test
This commit is contained in:
jdalrymple 2018-10-30 09:11:03 -04:00 committed by GitHub
commit 425b60b7d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 129 deletions

View File

@ -450,14 +450,17 @@ docker-compose -f docker-compose.test.yml up
either export them into environment variables locally:
```bash
- export PERSONAL_ACCESS_TOKEN=$(docker exec -it gitlab bash -lc 'printf "%q" "${PERSONAL_ACCESS_TOKEN}"')
- export GITLAB_URL=$(docker exec -it gitlab bash -lc 'printf "%q" "${GITLAB_URL}"')
export PERSONAL_ACCESS_TOKEN=$(docker exec -it gitlab bash -lc 'printf "%q" "${PERSONAL_ACCESS_TOKEN}"')
export GITLAB_URL=$(docker exec -it gitlab bash -lc 'printf "%q" "${GITLAB_URL}"')
```
1. Now run the tests
```bash
npm run test
# or, alternatively
npm run test-with-token # sets PERSONAL_ACCESS_TOKEN and GITLAB_URL from above, before running tests
```
You can also define them in front of the npm script

View File

@ -18,6 +18,7 @@
"test:infrastructure": "jest test/tests/infrastructure",
"test:services": "jest test/tests/services",
"test": "jest --debug --runInBand && codecov",
"test-with-token": "PERSONAL_ACCESS_TOKEN=$(docker exec -it gitlab bash -lc 'printf \"%q\" \"${PERSONAL_ACCESS_TOKEN}\"') GITLAB_URL=$(docker exec -it gitlab bash -lc 'printf \"%q\" \"${GITLAB_URL}\"') npm run test",
"prepublishOnly": "npm run build",
"semantic-release": "semantic-release"
},

View File

@ -1,141 +1,24 @@
import { ApplicationSettings } from '../../../src';
describe('ApplicationSettings.all', () => {
it('should return an array', async () => {
let settings: ReturnType<ApplicationSettings['all']>;
beforeEach(async () => {
const service = new ApplicationSettings({
url: process.env.GITLAB_URL,
token: process.env.PERSONAL_ACCESS_TOKEN,
});
const settings = await service.all();
settings = await service.all();
});
it('should return an array', async () => {
expect(settings).toBeObject();
});
/**
* @see https://docs.gitlab.com/ee/api/settings.html#get-current-application-settings
*/
it('should contain all the required properties', async () => {
const service = new ApplicationSettings({
url: process.env.GITLAB_URL,
token: process.env.PERSONAL_ACCESS_TOKEN,
});
const settings = await service.all();
expect(settings).toContainAllKeys([
'id',
'performance_bar_allowed_group_id',
'admin_notification_email',
'after_sign_out_path',
'after_sign_up_text',
'akismet_api_key',
'akismet_enabled',
'allow_local_requests_from_hooks_and_services',
'authorized_keys_enabled',
'auto_devops_enabled',
'auto_devops_domain',
'circuitbreaker_access_retries',
'circuitbreaker_check_interval',
'circuitbreaker_failure_count_threshold',
'circuitbreaker_failure_reset_time',
'circuitbreaker_storage_timeout',
'clientside_sentry_dsn',
'clientside_sentry_enabled',
'container_registry_token_expire_delay',
'default_artifacts_expire_in',
'default_branch_protection',
'default_group_visibility',
'default_project_visibility',
'default_projects_limit',
'default_snippet_visibility',
'disabled_oauth_sign_in_sources',
'domain_blacklist_enabled',
'domain_blacklist_raw',
'domain_whitelist_raw',
'dsa_key_restriction',
'ecdsa_key_restriction',
'ed25519_key_restriction',
'email_author_in_body',
'enabled_git_access_protocol',
'enforce_terms',
'gitaly_timeout_default',
'gitaly_timeout_medium',
'gitaly_timeout_fast',
'gravatar_enabled',
'hashed_storage_enabled',
'help_page_hide_commercial_content',
'help_page_support_url',
'help_page_text',
'hide_third_party_offers',
'home_page_url',
'housekeeping_bitmaps_enabled',
'housekeeping_enabled',
'housekeeping_full_repack_period',
'housekeeping_gc_period',
'housekeeping_incremental_repack_period',
'html_emails_enabled',
'import_sources',
'koding_enabled',
'koding_url',
'max_artifacts_size',
'max_attachment_size',
'max_pages_size',
'metrics_enabled',
'metrics_host',
'metrics_method_call_threshold',
'metrics_packet_size',
'metrics_pool_size',
'metrics_port',
'metrics_sample_interval',
'metrics_timeout',
'mirror_available',
'pages_domain_verification_enabled',
'password_authentication_enabled_for_web',
'password_authentication_enabled_for_git',
'plantuml_enabled',
'plantuml_url',
'polling_interval_multiplier',
'project_export_enabled',
'prometheus_metrics_enabled',
'recaptcha_enabled',
'recaptcha_private_key',
'recaptcha_site_key',
'receive_max_input_size',
'repository_checks_enabled',
'repository_storages',
'require_two_factor_authentication',
'restricted_visibility_levels',
'rsa_key_restriction',
'send_user_confirmation_email',
'sentry_dsn',
'sentry_enabled',
'session_expire_delay',
'shared_runners_enabled',
'shared_runners_text',
'sign_in_text',
'signup_enabled',
'terminal_max_session_time',
'terms',
'throttle_authenticated_api_enabled',
'throttle_authenticated_api_period_in_seconds',
'throttle_authenticated_api_requests_per_period',
'throttle_authenticated_web_enabled',
'throttle_authenticated_web_period_in_seconds',
'throttle_authenticated_web_requests_per_period',
'throttle_unauthenticated_enabled',
'throttle_unauthenticated_period_in_seconds',
'throttle_unauthenticated_requests_per_period',
'two_factor_grace_period',
'unique_ips_limit_enabled',
'unique_ips_limit_per_user',
'unique_ips_limit_time_window',
'usage_ping_enabled',
'instance_statistics_visibility_private',
'user_default_external',
'user_show_add_ssh_key_message',
'user_default_internal_regex',
'user_oauth_applications',
'version_check_enabled',
'web_ide_clientside_preview_enabled',
'diff_max_patch_bytes',
'password_authentication_enabled',
'signin_enabled',
]);
expect(Object.keys(settings)).toContain('id');
expect(Object.keys(settings)).toContain('gravatar_enabled');
});
});