gooddata 0.6.49 → 0.6.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -4
- data/CLI.md +0 -4
- data/DEPENDENCIES.md +0 -8
- data/Dockerfile.jruby +19 -0
- data/Dockerfile.ruby +19 -0
- data/LICENSE +2 -2
- data/LICENSE.rb +1 -1
- data/Rakefile +1 -1
- data/gooddata.gemspec +29 -28
- data/lib/gooddata.rb +2 -1
- data/lib/gooddata/app/app.rb +1 -1
- data/lib/gooddata/bricks/base_downloader.rb +1 -1
- data/lib/gooddata/bricks/brick.rb +3 -4
- data/lib/gooddata/bricks/bricks.rb +3 -1
- data/lib/gooddata/bricks/middleware/aws_middleware.rb +6 -8
- data/lib/gooddata/bricks/middleware/base_middleware.rb +2 -1
- data/lib/gooddata/bricks/middleware/bench_middleware.rb +2 -1
- data/lib/gooddata/bricks/middleware/bulk_salesforce_middleware.rb +3 -3
- data/lib/gooddata/bricks/middleware/decode_params_middleware.rb +3 -2
- data/lib/gooddata/bricks/middleware/dwh_middleware.rb +28 -0
- data/lib/gooddata/bricks/middleware/fs_download_middleware.rb +2 -2
- data/lib/gooddata/bricks/middleware/fs_upload_middleware.rb +2 -2
- data/lib/gooddata/bricks/middleware/gooddata_middleware.rb +84 -21
- data/lib/gooddata/bricks/middleware/logger_middleware.rb +1 -1
- data/lib/gooddata/bricks/middleware/middleware.rb +1 -1
- data/lib/gooddata/bricks/middleware/params_inspect_middleware.rb +21 -0
- data/lib/gooddata/bricks/middleware/restforce_middleware.rb +26 -26
- data/lib/gooddata/bricks/middleware/stdout_middleware.rb +1 -1
- data/lib/gooddata/bricks/middleware/twitter_middleware.rb +1 -1
- data/lib/gooddata/bricks/middleware/undot_params_middleware.rb +1 -1
- data/lib/gooddata/bricks/pipeline.rb +6 -13
- data/lib/gooddata/bricks/utils.rb +3 -3
- data/lib/gooddata/cli/cli.rb +1 -1
- data/lib/gooddata/cli/commands/auth_cmd.rb +1 -1
- data/lib/gooddata/cli/commands/domain_cmd.rb +1 -1
- data/lib/gooddata/cli/commands/project_cmd.rb +1 -18
- data/lib/gooddata/cli/hooks.rb +1 -2
- data/lib/gooddata/cli/shared.rb +1 -1
- data/lib/gooddata/cli/terminal.rb +1 -1
- data/lib/gooddata/client.rb +1 -1
- data/lib/gooddata/commands/api.rb +1 -1
- data/lib/gooddata/commands/auth.rb +1 -1
- data/lib/gooddata/commands/base.rb +1 -1
- data/lib/gooddata/commands/commands.rb +1 -1
- data/lib/gooddata/commands/datasets.rb +1 -1
- data/lib/gooddata/commands/datawarehouse.rb +1 -1
- data/lib/gooddata/commands/domain.rb +1 -1
- data/lib/gooddata/commands/process.rb +1 -1
- data/lib/gooddata/commands/project.rb +2 -31
- data/lib/gooddata/commands/projects.rb +1 -1
- data/lib/gooddata/commands/role.rb +1 -1
- data/lib/gooddata/commands/runners.rb +1 -1
- data/lib/gooddata/commands/scaffold.rb +1 -1
- data/lib/gooddata/commands/user.rb +1 -1
- data/lib/gooddata/connection.rb +1 -1
- data/lib/gooddata/core/core.rb +1 -1
- data/lib/gooddata/core/logging.rb +1 -1
- data/lib/gooddata/core/nil_logger.rb +1 -1
- data/lib/gooddata/core/project.rb +1 -1
- data/lib/gooddata/core/rest.rb +1 -1
- data/lib/gooddata/core/user.rb +1 -1
- data/lib/gooddata/data/data.rb +1 -1
- data/lib/gooddata/data/guesser.rb +1 -1
- data/lib/gooddata/exceptions/attr_element_not_found.rb +1 -1
- data/lib/gooddata/exceptions/command_failed.rb +1 -1
- data/lib/gooddata/exceptions/exceptions.rb +1 -1
- data/lib/gooddata/exceptions/execution_limit_exceeded.rb +1 -1
- data/lib/gooddata/exceptions/export_clone.rb +4 -0
- data/lib/gooddata/exceptions/filter_maqlization.rb +1 -1
- data/lib/gooddata/exceptions/import_clone.rb +4 -0
- data/lib/gooddata/exceptions/malformed_user.rb +1 -1
- data/lib/gooddata/exceptions/maql_execution.rb +1 -1
- data/lib/gooddata/exceptions/no_project_error.rb +1 -1
- data/lib/gooddata/exceptions/object_migration.rb +1 -1
- data/lib/gooddata/exceptions/project_not_found.rb +1 -1
- data/lib/gooddata/exceptions/segment_not_empty.rb +1 -1
- data/lib/gooddata/exceptions/uncomputable_report.rb +1 -1
- data/lib/gooddata/exceptions/user_in_different_domain.rb +1 -1
- data/lib/gooddata/exceptions/validation_error.rb +1 -1
- data/lib/gooddata/extensions/big_decimal.rb +1 -1
- data/lib/gooddata/extensions/class.rb +11 -0
- data/lib/gooddata/extensions/enumerable.rb +1 -1
- data/lib/gooddata/extensions/extensions.rb +1 -1
- data/lib/gooddata/extensions/false.rb +9 -1
- data/lib/gooddata/extensions/hash.rb +12 -1
- data/lib/gooddata/extensions/integer.rb +5 -0
- data/lib/gooddata/extensions/nil.rb +5 -1
- data/lib/gooddata/extensions/numeric.rb +1 -1
- data/lib/gooddata/extensions/object.rb +5 -1
- data/lib/gooddata/extensions/symbol.rb +1 -1
- data/lib/gooddata/extensions/true.rb +9 -1
- data/lib/gooddata/extract.rb +1 -1
- data/lib/gooddata/goodzilla/goodzilla.rb +1 -1
- data/lib/gooddata/helpers/auth_helpers.rb +1 -1
- data/lib/gooddata/helpers/csv_helper.rb +1 -1
- data/lib/gooddata/helpers/data_helper.rb +19 -10
- data/lib/gooddata/helpers/erb_helper.rb +23 -0
- data/lib/gooddata/helpers/global_helpers.rb +5 -73
- data/lib/gooddata/helpers/global_helpers_params.rb +73 -7
- data/lib/gooddata/helpers/helpers.rb +1 -1
- data/lib/gooddata/lcm/actions/actions.rb +12 -0
- data/lib/gooddata/lcm/actions/associate_clients.rb +46 -0
- data/lib/gooddata/lcm/actions/base_action.rb +23 -0
- data/lib/gooddata/lcm/actions/collect_clients.rb +89 -0
- data/lib/gooddata/lcm/actions/collect_segment_clients.rb +103 -0
- data/lib/gooddata/lcm/actions/collect_segments.rb +59 -0
- data/lib/gooddata/lcm/actions/create_segment_masters.rb +167 -0
- data/lib/gooddata/lcm/actions/ensure_release_table.rb +56 -0
- data/lib/gooddata/lcm/actions/ensure_segments.rb +35 -0
- data/lib/gooddata/lcm/actions/ensure_technical_users_domain.rb +66 -0
- data/lib/gooddata/lcm/actions/ensure_technical_users_project.rb +68 -0
- data/lib/gooddata/lcm/actions/ensure_titles.rb +54 -0
- data/lib/gooddata/lcm/actions/hello_world.rb +44 -0
- data/lib/gooddata/lcm/actions/print_actions.rb +61 -0
- data/lib/gooddata/lcm/actions/print_modes.rb +72 -0
- data/lib/gooddata/lcm/actions/print_types.rb +55 -0
- data/lib/gooddata/lcm/actions/provision_clients.rb +80 -0
- data/lib/gooddata/lcm/actions/purge_clients.rb +78 -0
- data/lib/gooddata/lcm/actions/segments_filter.rb +50 -0
- data/lib/gooddata/lcm/actions/synchronize_attribute_drillpaths.rb +60 -0
- data/lib/gooddata/lcm/actions/synchronize_clients.rb +87 -0
- data/lib/gooddata/lcm/actions/synchronize_color_palette.rb +59 -0
- data/lib/gooddata/lcm/actions/synchronize_label_types.rb +61 -0
- data/lib/gooddata/lcm/actions/synchronize_ldm.rb +64 -0
- data/lib/gooddata/lcm/actions/synchronize_meta.rb +55 -0
- data/lib/gooddata/lcm/actions/synchronize_new_segments.rb +55 -0
- data/lib/gooddata/lcm/actions/synchronize_processes.rb +66 -0
- data/lib/gooddata/lcm/actions/synchronize_schedules.rb +81 -0
- data/lib/gooddata/lcm/actions/update_release_table.rb +80 -0
- data/lib/gooddata/lcm/data/create_lcm_release.sql.erb +5 -0
- data/lib/gooddata/lcm/data/insert_into_lcm_release.sql.erb +11 -0
- data/lib/gooddata/lcm/data/select_from_lcm_release.sql.erb +8 -0
- data/lib/gooddata/lcm/data/update_lcm_release.sql.erb +7 -0
- data/lib/gooddata/lcm/dsl/dsl.rb +50 -0
- data/lib/gooddata/lcm/dsl/params_dsl.rb +61 -0
- data/lib/gooddata/lcm/dsl/type_dsl.rb +61 -0
- data/lib/gooddata/lcm/helpers/check_helper.rb +37 -0
- data/lib/gooddata/lcm/helpers/helpers.rb +12 -0
- data/lib/gooddata/lcm/lcm.rb +161 -20
- data/lib/gooddata/lcm/lcm2.rb +260 -0
- data/lib/gooddata/lcm/types/base_type.rb +29 -0
- data/lib/gooddata/lcm/types/class/ads_client.rb +35 -0
- data/lib/gooddata/lcm/types/class/class.rb +21 -0
- data/lib/gooddata/lcm/types/class/gd_client.rb +35 -0
- data/lib/gooddata/lcm/types/class/types.rb +12 -0
- data/lib/gooddata/lcm/types/complex/complex.rb +33 -0
- data/lib/gooddata/lcm/types/complex/release_query.rb +35 -0
- data/lib/gooddata/lcm/types/complex/segment.rb +37 -0
- data/lib/gooddata/lcm/types/complex/synchronization_info.rb +32 -0
- data/lib/gooddata/lcm/types/complex/tokens.rb +31 -0
- data/lib/gooddata/lcm/types/complex/types.rb +12 -0
- data/lib/gooddata/lcm/types/complex/update_preference.rb +32 -0
- data/lib/gooddata/lcm/types/param.rb +16 -0
- data/lib/gooddata/lcm/types/scalar/bool.rb +22 -0
- data/lib/gooddata/lcm/types/scalar/hash.rb +22 -0
- data/lib/gooddata/lcm/types/scalar/integer.rb +22 -0
- data/lib/gooddata/lcm/types/scalar/object.rb +22 -0
- data/lib/gooddata/lcm/types/scalar/string.rb +22 -0
- data/lib/gooddata/lcm/types/scalar/types.rb +12 -0
- data/lib/gooddata/lcm/types/special/array.rb +35 -0
- data/lib/gooddata/lcm/types/special/enum.rb +17 -0
- data/lib/gooddata/lcm/types/special/types.rb +12 -0
- data/lib/gooddata/lcm/types/types.rb +12 -0
- data/lib/gooddata/mixins/author.rb +1 -1
- data/lib/gooddata/mixins/content_getter.rb +1 -1
- data/lib/gooddata/mixins/content_property_reader.rb +1 -1
- data/lib/gooddata/mixins/content_property_writer.rb +1 -1
- data/lib/gooddata/mixins/contributor.rb +1 -1
- data/lib/gooddata/mixins/data_getter.rb +1 -1
- data/lib/gooddata/mixins/data_property_reader.rb +1 -1
- data/lib/gooddata/mixins/data_property_writer.rb +1 -1
- data/lib/gooddata/mixins/inspector.rb +1 -1
- data/lib/gooddata/mixins/is_attribute.rb +1 -1
- data/lib/gooddata/mixins/is_dimension.rb +1 -1
- data/lib/gooddata/mixins/is_fact.rb +1 -1
- data/lib/gooddata/mixins/is_label.rb +1 -1
- data/lib/gooddata/mixins/links.rb +1 -1
- data/lib/gooddata/mixins/md_finders.rb +1 -1
- data/lib/gooddata/mixins/md_grantees.rb +1 -1
- data/lib/gooddata/mixins/md_id_to_uri.rb +9 -3
- data/lib/gooddata/mixins/md_json.rb +1 -1
- data/lib/gooddata/mixins/md_lock.rb +1 -1
- data/lib/gooddata/mixins/md_object_id.rb +1 -1
- data/lib/gooddata/mixins/md_object_indexer.rb +1 -1
- data/lib/gooddata/mixins/md_object_query.rb +1 -1
- data/lib/gooddata/mixins/md_relations.rb +1 -1
- data/lib/gooddata/mixins/meta_getter.rb +1 -1
- data/lib/gooddata/mixins/meta_property_reader.rb +1 -1
- data/lib/gooddata/mixins/meta_property_writer.rb +1 -1
- data/lib/gooddata/mixins/mixins.rb +1 -1
- data/lib/gooddata/mixins/not_attribute.rb +1 -1
- data/lib/gooddata/mixins/not_exportable.rb +1 -1
- data/lib/gooddata/mixins/not_fact.rb +1 -1
- data/lib/gooddata/mixins/not_group.rb +1 -1
- data/lib/gooddata/mixins/not_label.rb +1 -1
- data/lib/gooddata/mixins/not_metric.rb +1 -1
- data/lib/gooddata/mixins/obj_id.rb +1 -1
- data/lib/gooddata/mixins/rest_getters.rb +1 -1
- data/lib/gooddata/mixins/rest_resource.rb +1 -1
- data/lib/gooddata/mixins/root_key_getter.rb +1 -1
- data/lib/gooddata/mixins/root_key_setter.rb +1 -1
- data/lib/gooddata/mixins/timestamps.rb +1 -1
- data/lib/gooddata/models/ads_output_stage.rb +85 -0
- data/lib/gooddata/models/automated_data_distribution.rb +36 -0
- data/lib/gooddata/models/blueprint/anchor_field.rb +4 -3
- data/lib/gooddata/models/blueprint/attribute_field.rb +18 -2
- data/lib/gooddata/models/blueprint/blueprint.rb +1 -1
- data/lib/gooddata/models/blueprint/blueprint_field.rb +1 -1
- data/lib/gooddata/models/blueprint/dashboard_builder.rb +1 -1
- data/lib/gooddata/models/blueprint/dataset_blueprint.rb +6 -1
- data/lib/gooddata/models/blueprint/date_dimension.rb +1 -1
- data/lib/gooddata/models/blueprint/fact_field.rb +1 -1
- data/lib/gooddata/models/blueprint/label_field.rb +5 -1
- data/lib/gooddata/models/blueprint/project_blueprint.rb +1 -1
- data/lib/gooddata/models/blueprint/project_builder.rb +1 -1
- data/lib/gooddata/models/blueprint/reference_field.rb +1 -1
- data/lib/gooddata/models/blueprint/schema_blueprint.rb +1 -1
- data/lib/gooddata/models/blueprint/schema_builder.rb +1 -1
- data/lib/gooddata/models/blueprint/to_manifest.rb +7 -3
- data/lib/gooddata/models/blueprint/to_wire.rb +12 -1
- data/lib/gooddata/models/channel_configuration.rb +112 -0
- data/lib/gooddata/models/client.rb +42 -6
- data/lib/gooddata/models/client_synchronization_result.rb +1 -1
- data/lib/gooddata/models/client_synchronization_result_details.rb +1 -1
- data/lib/gooddata/models/datawarehouse.rb +25 -3
- data/lib/gooddata/models/domain.rb +29 -4
- data/lib/gooddata/models/execution.rb +1 -1
- data/lib/gooddata/models/execution_detail.rb +1 -1
- data/lib/gooddata/models/from_wire.rb +8 -1
- data/lib/gooddata/models/invitation.rb +1 -1
- data/lib/gooddata/models/links.rb +1 -1
- data/lib/gooddata/models/membership.rb +1 -1
- data/lib/gooddata/models/metadata.rb +3 -2
- data/lib/gooddata/models/metadata/attribute.rb +7 -1
- data/lib/gooddata/models/metadata/dashboard.rb +3 -3
- data/lib/gooddata/models/metadata/dashboard/dashboard_item.rb +1 -1
- data/lib/gooddata/models/metadata/dashboard/filter_apply_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/filter_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/geo_chart_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/headline_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/iframe_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/report_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard/text_item.rb +2 -2
- data/lib/gooddata/models/metadata/dashboard_tab.rb +2 -2
- data/lib/gooddata/models/metadata/dataset.rb +1 -1
- data/lib/gooddata/models/metadata/dimension.rb +1 -1
- data/lib/gooddata/models/metadata/fact.rb +1 -1
- data/lib/gooddata/models/metadata/folder.rb +1 -1
- data/lib/gooddata/models/metadata/label.rb +1 -1
- data/lib/gooddata/models/metadata/metadata.rb +1 -1
- data/lib/gooddata/models/metadata/metric.rb +1 -1
- data/lib/gooddata/models/metadata/report.rb +1 -1
- data/lib/gooddata/models/metadata/report_definition.rb +1 -1
- data/lib/gooddata/models/metadata/scheduled_mail.rb +2 -2
- data/lib/gooddata/models/metadata/scheduled_mail/dashboard_attachment.rb +1 -1
- data/lib/gooddata/models/metadata/scheduled_mail/report_attachment.rb +1 -1
- data/lib/gooddata/models/metadata/variable.rb +1 -1
- data/lib/gooddata/models/model.rb +1 -1
- data/lib/gooddata/models/models.rb +1 -1
- data/lib/gooddata/models/module_constants.rb +1 -1
- data/lib/gooddata/models/notification_rule.rb +113 -0
- data/lib/gooddata/models/process.rb +10 -3
- data/lib/gooddata/models/profile.rb +9 -1
- data/lib/gooddata/models/project.rb +248 -50
- data/lib/gooddata/models/project_creator.rb +2 -2
- data/lib/gooddata/models/project_metadata.rb +1 -1
- data/lib/gooddata/models/project_role.rb +1 -1
- data/lib/gooddata/models/report_data_result.rb +1 -1
- data/lib/gooddata/models/schedule.rb +49 -13
- data/lib/gooddata/models/segment.rb +3 -3
- data/lib/gooddata/models/style_setting.rb +71 -0
- data/lib/gooddata/models/subscription.rb +181 -0
- data/lib/gooddata/models/tab_builder.rb +1 -1
- data/lib/gooddata/models/user_filters/mandatory_user_filter.rb +1 -1
- data/lib/gooddata/models/user_filters/user_filter.rb +1 -1
- data/lib/gooddata/models/user_filters/user_filter_builder.rb +11 -5
- data/lib/gooddata/models/user_filters/user_filters.rb +1 -1
- data/lib/gooddata/models/user_filters/variable_user_filter.rb +1 -1
- data/lib/gooddata/models/user_group.rb +19 -12
- data/lib/gooddata/rest/client.rb +9 -1
- data/lib/gooddata/rest/connection.rb +18 -9
- data/lib/gooddata/rest/object.rb +1 -1
- data/lib/gooddata/rest/object_factory.rb +1 -1
- data/lib/gooddata/rest/resource.rb +1 -1
- data/lib/gooddata/rest/rest.rb +1 -1
- data/lib/gooddata/version.rb +2 -2
- data/spec/.rubocop.yml +16 -0
- data/spec/bricks/bricks_spec.rb +13 -15
- data/spec/data/blueprints/attribute_sort_order_blueprint.json +72 -0
- data/spec/data/gooddata_version_process/gooddata_version.rb +1 -1
- data/spec/data/hello_world_process/hello_world.rb +2 -2
- data/spec/data/ruby_params_process/ruby_params.rb +1 -1
- data/spec/data/ruby_process/process.rb +2 -2
- data/spec/data/wire_models/attribute_sort_by_model.json +73 -0
- data/spec/environment/default.rb +14 -13
- data/spec/environment/develop.rb +26 -11
- data/spec/environment/environment.rb +2 -1
- data/spec/environment/hotfix.rb +15 -7
- data/spec/environment/production.rb +6 -14
- data/spec/environment/staging.rb +9 -10
- data/spec/helpers/blueprint_helper.rb +11 -10
- data/spec/helpers/cli_helper.rb +26 -24
- data/spec/helpers/connection_helper.rb +28 -26
- data/spec/helpers/crypto_helper.rb +8 -6
- data/spec/helpers/csv_helper.rb +7 -5
- data/spec/helpers/process_helper.rb +13 -11
- data/spec/helpers/project_helper.rb +36 -34
- data/spec/helpers/schedule_helper.rb +13 -11
- data/spec/helpers/spec_helper.rb +8 -6
- data/spec/integration/ads_output_stage_spec.rb +55 -0
- data/spec/integration/blueprint_updates_spec.rb +22 -16
- data/spec/integration/blueprint_with_grain_spec.rb +5 -3
- data/spec/integration/channel_configuration_spec.rb +67 -0
- data/spec/integration/clients_spec.rb +31 -22
- data/spec/integration/command_datawarehouse_spec.rb +4 -4
- data/spec/integration/command_projects_spec.rb +6 -6
- data/spec/integration/create_from_template_spec.rb +4 -3
- data/spec/integration/create_project_spec.rb +7 -4
- data/spec/integration/date_dim_switch_spec.rb +25 -28
- data/spec/integration/deprecated_load_spec.rb +11 -9
- data/spec/integration/full_process_schedule_spec.rb +82 -13
- data/spec/integration/full_project_spec.rb +67 -45
- data/spec/integration/lcm_spec.rb +41 -0
- data/spec/integration/over_to_user_filters_spec.rb +14 -10
- data/spec/integration/partial_md_export_import_spec.rb +3 -4
- data/spec/integration/project_spec.rb +101 -42
- data/spec/integration/rest_spec.rb +5 -4
- data/spec/integration/schedule_spec.rb +28 -39
- data/spec/integration/segments_spec.rb +42 -31
- data/spec/integration/subscription_spec.rb +63 -0
- data/spec/integration/user_filters_spec.rb +49 -39
- data/spec/integration/user_group_spec.rb +25 -5
- data/spec/integration/variables_spec.rb +34 -32
- data/spec/logging_in_logging_out_spec.rb +6 -8
- data/spec/spec_helper.rb +3 -3
- data/spec/unit/bricks/bricks_spec.rb +3 -4
- data/spec/unit/bricks/middleware/aws_middelware_spec.rb +8 -15
- data/spec/unit/bricks/middleware/bench_middleware_spec.rb +2 -2
- data/spec/unit/bricks/middleware/bulk_salesforce_middleware_spec.rb +2 -2
- data/spec/unit/bricks/middleware/gooddata_middleware_spec.rb +2 -2
- data/spec/unit/bricks/middleware/logger_middleware_spec.rb +2 -2
- data/spec/unit/bricks/middleware/restforce_middleware_spec.rb +3 -3
- data/spec/unit/bricks/middleware/stdout_middleware_spec.rb +3 -3
- data/spec/unit/bricks/middleware/twitter_middleware_spec.rb +3 -3
- data/spec/unit/cli/cli_spec.rb +3 -3
- data/spec/unit/cli/commands/cmd_auth_spec.rb +2 -2
- data/spec/unit/commands/command_projects_spec.rb +3 -3
- data/spec/unit/core/connection_spec.rb +3 -4
- data/spec/unit/core/logging_spec.rb +2 -5
- data/spec/unit/core/nil_logger_spec.rb +2 -2
- data/spec/unit/core/project_spec.rb +4 -4
- data/spec/unit/extensions/hash_spec.rb +3 -4
- data/spec/unit/godzilla/goodzilla_spec.rb +22 -26
- data/spec/unit/helpers/csv_helper_spec.rb +3 -3
- data/spec/unit/helpers/data_helper_spec.rb +6 -18
- data/spec/unit/helpers/global_helpers_spec.rb +112 -28
- data/spec/unit/helpers_spec.rb +139 -2
- data/spec/unit/models/blueprint/attribute_sort_by_spec.rb +20 -0
- data/spec/unit/models/blueprint/attributes_spec.rb +1 -2
- data/spec/unit/models/blueprint/dataset_spec.rb +2 -3
- data/spec/unit/models/blueprint/labels_spec.rb +1 -2
- data/spec/unit/models/blueprint/project_blueprint_spec.rb +34 -35
- data/spec/unit/models/blueprint/reference_spec.rb +1 -2
- data/spec/unit/models/blueprint/schema_builder_spec.rb +5 -7
- data/spec/unit/models/blueprint/to_wire_spec.rb +76 -55
- data/spec/unit/models/domain_spec.rb +4 -5
- data/spec/unit/models/execution_spec.rb +16 -15
- data/spec/unit/models/from_wire_spec.rb +24 -19
- data/spec/unit/models/invitation_spec.rb +1 -1
- data/spec/unit/models/membership_spec.rb +36 -41
- data/spec/unit/models/metadata_spec.rb +20 -18
- data/spec/unit/models/metric_spec.rb +67 -55
- data/spec/unit/models/model_spec.rb +32 -37
- data/spec/unit/models/params_spec.rb +1 -1
- data/spec/unit/models/profile_spec.rb +40 -45
- data/spec/unit/models/project_creator_spec.rb +27 -29
- data/spec/unit/models/project_role_spec.rb +1 -1
- data/spec/unit/models/project_spec.rb +65 -2
- data/spec/unit/models/report_result_data_spec.rb +7 -12
- data/spec/unit/models/schedule_spec.rb +71 -35
- data/spec/unit/models/to_manifest_spec.rb +69 -4
- data/spec/unit/models/unit_project_spec.rb +12 -12
- data/spec/unit/models/user_filters_spec.rb +40 -40
- data/spec/unit/models/variable_spec.rb +108 -93
- data/spec/unit/rest/polling_spec.rb +7 -7
- data/spec/unit/rest/resource_spec.rb +2 -2
- metadata +145 -228
- data/spec/environment/release.rb +0 -21
- data/spec/environment/staging_3.rb +0 -36
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
7
|
-
require 'pry'
|
|
8
7
|
require 'gooddata/models/model'
|
|
9
8
|
|
|
10
9
|
describe GoodData::Model::SchemaBuilder do
|
|
11
|
-
|
|
12
10
|
it "should create a schema" do
|
|
13
11
|
builder = GoodData::Model::SchemaBuilder.new("a_title")
|
|
14
12
|
blueprint = builder.to_blueprint
|
|
@@ -21,7 +19,7 @@ describe GoodData::Model::SchemaBuilder do
|
|
|
21
19
|
builder.add_fact("amount", :title => "Amount")
|
|
22
20
|
|
|
23
21
|
blueprint = builder.to_blueprint
|
|
24
|
-
blueprint.attributes.count
|
|
22
|
+
expect(blueprint.attributes.count).to eq(1)
|
|
25
23
|
end
|
|
26
24
|
|
|
27
25
|
it "should be able to create from block" do
|
|
@@ -32,7 +30,7 @@ describe GoodData::Model::SchemaBuilder do
|
|
|
32
30
|
end
|
|
33
31
|
|
|
34
32
|
blueprint = builder.to_blueprint
|
|
35
|
-
blueprint.attributes.count
|
|
36
|
-
blueprint.facts.count
|
|
33
|
+
expect(blueprint.attributes.count).to eq(1)
|
|
34
|
+
expect(blueprint.facts.count).to eq(1)
|
|
37
35
|
end
|
|
38
|
-
end
|
|
36
|
+
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -9,7 +9,6 @@ require 'gooddata'
|
|
|
9
9
|
include GoodData::Model
|
|
10
10
|
|
|
11
11
|
describe GoodData::Model::ProjectBlueprint do
|
|
12
|
-
|
|
13
12
|
before(:each) do
|
|
14
13
|
@spec = JSON.parse(File.read("./spec/data/blueprints/big_blueprint_not_pruned.json"), :symbolize_names => true)
|
|
15
14
|
@blueprint = GoodData::Model::ProjectBlueprint.new(@spec)
|
|
@@ -26,13 +25,13 @@ describe GoodData::Model::ProjectBlueprint do
|
|
|
26
25
|
|
|
27
26
|
it 'it should turn into wire another project' do
|
|
28
27
|
spec = JSON.parse(File.read("./spec/data/blueprints/test_project_model_spec.json"), :symbolize_names => true)
|
|
29
|
-
|
|
28
|
+
ToWire.to_wire(spec)
|
|
30
29
|
end
|
|
31
30
|
|
|
32
31
|
it 'should create manifest' do
|
|
33
32
|
spec = JSON.parse(File.read("./spec/data/blueprints/test_blueprint.json"), :symbolize_names => true)
|
|
34
33
|
wire_spec = JSON.parse(File.read("./spec/data/wire_models/test_blueprint.json"), :symbolize_names => true)
|
|
35
|
-
|
|
34
|
+
JSON.parse(File.read("./spec/data/manifests/test_blueprint.json"))
|
|
36
35
|
expect(ToWire.to_wire(spec)).to eq wire_spec
|
|
37
36
|
end
|
|
38
37
|
end
|
|
@@ -42,71 +41,95 @@ describe GoodData::Model::ProjectBlueprint do
|
|
|
42
41
|
dataset = ProjectBlueprint.find_dataset(@spec, 'dataset.stage_history')
|
|
43
42
|
|
|
44
43
|
result = ToWire.anchor_to_wire(@spec, dataset)
|
|
45
|
-
expect(result).to eq
|
|
44
|
+
expect(result).to eq(
|
|
46
45
|
attribute: {
|
|
47
46
|
identifier: "attr.dataset.stage_history.factsof",
|
|
48
47
|
title: "Records of stage_history",
|
|
49
|
-
folder: "stage_history"
|
|
48
|
+
folder: "stage_history"
|
|
49
|
+
}
|
|
50
|
+
)
|
|
50
51
|
end
|
|
51
52
|
|
|
52
53
|
it 'should generate anchor with label' do
|
|
53
54
|
dataset = ProjectBlueprint.find_dataset(@spec, 'dataset.opportunityanalysis')
|
|
54
55
|
result = ToWire.anchor_to_wire(nil, dataset)
|
|
55
|
-
expect(result).to eq
|
|
56
|
+
expect(result).to eq(
|
|
56
57
|
attribute: {
|
|
57
|
-
:identifier=>"attr.opportunityanalysis.techoppanalysis",
|
|
58
|
-
:title=>"Tech Opp. Analysis",
|
|
59
|
-
:folder=>"Opportunity Benchmark",
|
|
60
|
-
:labels=>[
|
|
61
|
-
{
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
58
|
+
:identifier => "attr.opportunityanalysis.techoppanalysis",
|
|
59
|
+
:title => "Tech Opp. Analysis",
|
|
60
|
+
:folder => "Opportunity Benchmark",
|
|
61
|
+
:labels => [
|
|
62
|
+
{
|
|
63
|
+
:label => {
|
|
64
|
+
:identifier => "label.opportunityanalysis.techoppanalysis",
|
|
65
|
+
:title => "Tech Opp. Analysis",
|
|
66
|
+
:type => "GDC.text",
|
|
67
|
+
:dataType => "VARCHAR(128)"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
:defaultLabel => "label.opportunityanalysis.techoppanalysis"
|
|
72
|
+
}
|
|
73
|
+
)
|
|
67
74
|
end
|
|
68
75
|
end
|
|
69
76
|
|
|
70
77
|
describe '#anchor_to_attribute' do
|
|
71
78
|
it 'should generate attribute without label' do
|
|
72
79
|
dataset = ProjectBlueprint.find_dataset(@spec, 'dataset.stage_history')
|
|
73
|
-
a = DatasetBlueprint.attributes(dataset).find {|
|
|
80
|
+
a = DatasetBlueprint.attributes(dataset).find { |attribute| attribute[:id] == 'attr.stage_history.currentstatus' }
|
|
74
81
|
result = ToWire.attribute_to_wire(dataset, a)
|
|
75
|
-
expect(result).to eq
|
|
76
|
-
:attribute=>
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
82
|
+
expect(result).to eq(
|
|
83
|
+
:attribute => {
|
|
84
|
+
:identifier => "attr.stage_history.currentstatus",
|
|
85
|
+
:title => "Current Stage",
|
|
86
|
+
:folder => "stage_history",
|
|
87
|
+
:labels => [
|
|
88
|
+
{
|
|
89
|
+
:label => {
|
|
90
|
+
:identifier => "label.stage_history.currentstatus",
|
|
91
|
+
:title => "Current Stage",
|
|
92
|
+
:type => "GDC.text",
|
|
93
|
+
:dataType => "VARCHAR(128)"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
:defaultLabel => "label.stage_history.currentstatus"
|
|
98
|
+
}
|
|
99
|
+
)
|
|
87
100
|
end
|
|
88
101
|
|
|
89
102
|
it 'should generate attributes with label' do
|
|
90
103
|
dataset = ProjectBlueprint.find_dataset(@spec, 'dataset.opportunityanalysis')
|
|
91
|
-
a = DatasetBlueprint.attributes(dataset).find {|
|
|
104
|
+
a = DatasetBlueprint.attributes(dataset).find { |attribute| attribute[:id] == 'attr.opportunityanalysis.month' }
|
|
92
105
|
|
|
93
106
|
result = ToWire.attribute_to_wire(dataset, a)
|
|
94
|
-
expect(result).to eq
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
:
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
expect(result).to eq(
|
|
108
|
+
:attribute => {
|
|
109
|
+
:identifier => "attr.opportunityanalysis.month",
|
|
110
|
+
:title => "Month",
|
|
111
|
+
:folder => "Opportunity Benchmark",
|
|
112
|
+
:labels => [
|
|
113
|
+
{
|
|
114
|
+
:label => {
|
|
115
|
+
:identifier => "label.opportunityanalysis.month",
|
|
116
|
+
:title => "Month",
|
|
117
|
+
:type => "GDC.text",
|
|
118
|
+
:dataType => "VARCHAR(128)"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
:label => {
|
|
123
|
+
:identifier => "label.opportunityanalysis.month.monthsortingnew",
|
|
124
|
+
:title => "MonthSortingNew",
|
|
125
|
+
:type => "GDC.text",
|
|
126
|
+
:dataType => "INT"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
],
|
|
130
|
+
:defaultLabel => "label.opportunityanalysis.month"
|
|
131
|
+
}
|
|
132
|
+
)
|
|
110
133
|
end
|
|
111
134
|
end
|
|
112
135
|
|
|
@@ -121,13 +144,15 @@ describe GoodData::Model::ProjectBlueprint do
|
|
|
121
144
|
gd_data_type: "DECIMAL(12,2)"
|
|
122
145
|
}
|
|
123
146
|
result = ToWire.fact_to_wire(nil, fact_def)
|
|
124
|
-
expect(result).to eq
|
|
147
|
+
expect(result).to eq(
|
|
125
148
|
fact: {
|
|
126
149
|
identifier: "fact.stage_history.stage_velocity",
|
|
127
150
|
title: "Stage Velocity",
|
|
128
151
|
dataType: "DECIMAL(12,2)",
|
|
129
152
|
folder: "My Folder",
|
|
130
|
-
description: "Velocity description"
|
|
153
|
+
description: "Velocity description"
|
|
154
|
+
}
|
|
155
|
+
)
|
|
131
156
|
end
|
|
132
157
|
end
|
|
133
158
|
|
|
@@ -163,12 +188,8 @@ describe GoodData::Model::ProjectBlueprint do
|
|
|
163
188
|
|
|
164
189
|
describe '#date_dimension_to_wire' do
|
|
165
190
|
it 'should be able to generate date dimension' do
|
|
166
|
-
res = ToWire.date_dimension_to_wire(@spec,
|
|
167
|
-
|
|
168
|
-
id: "timeline",
|
|
169
|
-
title: "Timeline"
|
|
170
|
-
})
|
|
171
|
-
expect(res).to eq({:dateDimension=>{:name=>"timeline", :title=>"Timeline"}})
|
|
191
|
+
res = ToWire.date_dimension_to_wire(@spec, type: "date_dimension", id: "timeline", title: "Timeline")
|
|
192
|
+
expect(res).to eq(:dateDimension => { :name => "timeline", :title => "Timeline" })
|
|
172
193
|
end
|
|
173
194
|
end
|
|
174
195
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -30,7 +30,7 @@ describe GoodData::Domain do
|
|
|
30
30
|
args = {
|
|
31
31
|
:domain => ConnectionHelper::DEFAULT_DOMAIN,
|
|
32
32
|
:login => "gemtest_#{rand(1e6)}@gooddata.com",
|
|
33
|
-
:password => CryptoHelper.generate_password
|
|
33
|
+
:password => CryptoHelper.generate_password
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
@user = GoodData::Domain.add_user(args)
|
|
@@ -70,7 +70,7 @@ describe GoodData::Domain do
|
|
|
70
70
|
|
|
71
71
|
describe '#create_users' do
|
|
72
72
|
it 'Creates new users from list' do
|
|
73
|
-
list = (0..1).to_a.map {
|
|
73
|
+
list = (0..1).to_a.map { ProjectHelper.create_random_user(@client) }
|
|
74
74
|
res = @domain.create_users(list)
|
|
75
75
|
|
|
76
76
|
# no errors
|
|
@@ -91,7 +91,6 @@ describe GoodData::Domain do
|
|
|
91
91
|
modes = user.authentication_modes
|
|
92
92
|
possible_modes = [:sso, :password]
|
|
93
93
|
|
|
94
|
-
|
|
95
94
|
user.first_name = name.reverse
|
|
96
95
|
choice = SpecHelper.random_choice(possible_modes, user.authentication_modes)
|
|
97
96
|
user.authentication_modes = choice
|
|
@@ -108,7 +107,7 @@ describe GoodData::Domain do
|
|
|
108
107
|
expect(reverted_user.authentication_modes).to eq modes
|
|
109
108
|
end
|
|
110
109
|
|
|
111
|
-
it 'Fails with an exception if you try to create a user that is in a different domain' do
|
|
110
|
+
it 'Fails with an exception if you try to create a user that is in a different domain', broken: true do
|
|
112
111
|
user = ProjectHelper.create_random_user(@client)
|
|
113
112
|
user.login = 'svarovsky@gooddata.com'
|
|
114
113
|
expect do
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
7
7
|
require 'gooddata/models/schedule'
|
|
8
8
|
|
|
9
9
|
describe GoodData::Execution do
|
|
10
|
-
|
|
11
10
|
before(:each) do
|
|
12
|
-
@data = {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"/gdc/projects/tk3b994vmdpcb0xjwexc9moen8t5bpiw/dataload/processes/2b031451-b1a2-4039-8e36-0672542a0e60/executions/54f090d5e4b0c9cbdcb0f45b/log",
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"createdTime"=>"2015-02-27T15:44:21.361Z"
|
|
11
|
+
@data = {
|
|
12
|
+
"execution" => {
|
|
13
|
+
"startTime" => "2015-02-27T15:44:21.759Z",
|
|
14
|
+
"endTime" => "2015-02-27T15:47:49.383Z",
|
|
15
|
+
"log" => "/gdc/projects/tk3b994vmdpcb0xjwexc9moen8t5bpiw/dataload/processes/2b031451-b1a2-4039-8e36-0672542a0e60/executions/54f090d5e4b0c9cbdcb0f45b/log",
|
|
16
|
+
"status" => "OK",
|
|
17
|
+
"trigger" => "MANUAL",
|
|
18
|
+
"links" => {
|
|
19
|
+
"self" => "/gdc/projects/tk3b994vmdpcb0xjwexc9moen8t5bpiw/schedules/54f08d1de4b0c9cbdcb0f323/executions/54f090d5e4b0c9cbdcb0f45b"
|
|
20
|
+
},
|
|
21
|
+
"createdTime" => "2015-02-27T15:44:21.361Z"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
23
24
|
@execution = GoodData::Execution.new(@data)
|
|
24
25
|
end
|
|
25
26
|
|
|
@@ -32,7 +33,7 @@ describe GoodData::Execution do
|
|
|
32
33
|
|
|
33
34
|
describe '#error?' do
|
|
34
35
|
it 'returns true if executione errored out' do
|
|
35
|
-
expect(@execution.error?).to
|
|
36
|
+
expect(@execution.error?).to be_falsey
|
|
36
37
|
end
|
|
37
38
|
end
|
|
38
39
|
|
|
@@ -64,7 +65,7 @@ describe GoodData::Execution do
|
|
|
64
65
|
|
|
65
66
|
describe '#running?' do
|
|
66
67
|
it 'returns false if executione is already finished' do
|
|
67
|
-
expect(@execution.running?).to
|
|
68
|
+
expect(@execution.running?).to be_falsey
|
|
68
69
|
end
|
|
69
70
|
|
|
70
71
|
it 'returns true if executione is currently finished' do
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
#
|
|
3
|
-
# Copyright (c) 2010-
|
|
3
|
+
# Copyright (c) 2010-2017 GoodData Corporation. All rights reserved.
|
|
4
4
|
# This source code is licensed under the BSD-style license found in the
|
|
5
5
|
# LICENSE file in the root directory of this source tree.
|
|
6
6
|
|
|
@@ -9,7 +9,6 @@ require 'gooddata'
|
|
|
9
9
|
include GoodData::Model
|
|
10
10
|
|
|
11
11
|
describe GoodData::Model::FromWire do
|
|
12
|
-
|
|
13
12
|
before(:each) do
|
|
14
13
|
@model_view = MultiJson.load(File.read('./spec/data/wire_models/model_view.json'))
|
|
15
14
|
@blueprint = FromWire.from_wire(@model_view)
|
|
@@ -26,6 +25,7 @@ describe GoodData::Model::FromWire do
|
|
|
26
25
|
title: "Month",
|
|
27
26
|
folder: "Opportunity Benchmark",
|
|
28
27
|
description: nil,
|
|
28
|
+
order_by: "label.opportunityanalysis.month.monthsortingnew - ASC"
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
type: :label,
|
|
@@ -43,7 +43,8 @@ describe GoodData::Model::FromWire do
|
|
|
43
43
|
title: "MonthSortingNew",
|
|
44
44
|
gd_data_type: "INT",
|
|
45
45
|
gd_type: "GDC.text"
|
|
46
|
-
}
|
|
46
|
+
}
|
|
47
|
+
])
|
|
47
48
|
end
|
|
48
49
|
|
|
49
50
|
it "should be able to parse the anchor" do
|
|
@@ -55,7 +56,7 @@ describe GoodData::Model::FromWire do
|
|
|
55
56
|
id: "attr.opportunityanalysis.techoppanalysis",
|
|
56
57
|
title: "Tech Opp. Analysis",
|
|
57
58
|
folder: "Opportunity Benchmark",
|
|
58
|
-
description: nil
|
|
59
|
+
description: nil
|
|
59
60
|
},
|
|
60
61
|
{
|
|
61
62
|
type: :label,
|
|
@@ -65,7 +66,8 @@ describe GoodData::Model::FromWire do
|
|
|
65
66
|
gd_data_type: "VARCHAR(128)",
|
|
66
67
|
gd_type: "GDC.text",
|
|
67
68
|
default_label: true
|
|
68
|
-
}
|
|
69
|
+
}
|
|
70
|
+
])
|
|
69
71
|
end
|
|
70
72
|
end
|
|
71
73
|
|
|
@@ -102,7 +104,8 @@ describe GoodData::Model::FromWire do
|
|
|
102
104
|
id: "attr.opportunityanalysis.month",
|
|
103
105
|
title: "Month",
|
|
104
106
|
description: nil,
|
|
105
|
-
folder: "Opportunity Benchmark"
|
|
107
|
+
folder: "Opportunity Benchmark",
|
|
108
|
+
order_by: "label.opportunityanalysis.month.monthsortingnew - ASC"
|
|
106
109
|
},
|
|
107
110
|
{
|
|
108
111
|
type: :label,
|
|
@@ -143,7 +146,7 @@ describe GoodData::Model::FromWire do
|
|
|
143
146
|
it "should be able to parse the attributes with no labels" do
|
|
144
147
|
model = @model_view['projectModelView']['model']['projectModel']['datasets'][7]
|
|
145
148
|
x = FromWire.parse_attributes(model)
|
|
146
|
-
expect(x.to_set).to eq Set.new
|
|
149
|
+
expect(x.to_set).to eq Set.new
|
|
147
150
|
end
|
|
148
151
|
end
|
|
149
152
|
|
|
@@ -151,13 +154,15 @@ describe GoodData::Model::FromWire do
|
|
|
151
154
|
it "should be able to parse the anchor without label" do
|
|
152
155
|
model = @model_view['projectModelView']['model']['projectModel']['datasets'].first
|
|
153
156
|
x = FromWire.parse_anchor(model)
|
|
154
|
-
expect(x.to_set).to eq Set.new([
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
157
|
+
expect(x.to_set).to eq Set.new([
|
|
158
|
+
{
|
|
159
|
+
type: :anchor,
|
|
160
|
+
id: "attr.stage_history.factsof",
|
|
161
|
+
title: "Records of stage_history",
|
|
162
|
+
description: nil,
|
|
163
|
+
folder: nil
|
|
164
|
+
}
|
|
165
|
+
])
|
|
161
166
|
end
|
|
162
167
|
|
|
163
168
|
it "should be able to parse the anchor out of dataset when there are multiple labels" do
|
|
@@ -180,7 +185,7 @@ describe GoodData::Model::FromWire do
|
|
|
180
185
|
gd_type: "GDC.text",
|
|
181
186
|
default_label: true
|
|
182
187
|
},
|
|
183
|
-
{
|
|
188
|
+
{
|
|
184
189
|
type: :label,
|
|
185
190
|
id: "label.opp_records.factsof",
|
|
186
191
|
reference: "attr.opp_records.factsof",
|
|
@@ -247,7 +252,7 @@ describe GoodData::Model::FromWire do
|
|
|
247
252
|
describe '#from_wire' do
|
|
248
253
|
it 'should be able to parse dataset' do
|
|
249
254
|
model_view = MultiJson.load(File.read('./spec/data/wire_models/nu_model.json'))
|
|
250
|
-
|
|
255
|
+
GoodData::Model::FromWire.from_wire(model_view)
|
|
251
256
|
end
|
|
252
257
|
end
|
|
253
258
|
|
|
@@ -256,7 +261,7 @@ describe GoodData::Model::FromWire do
|
|
|
256
261
|
end
|
|
257
262
|
|
|
258
263
|
it "should have a datatype if defined" do
|
|
259
|
-
dataset = @blueprint.datasets.find {|d| d.id == 'dataset.account' }
|
|
264
|
+
dataset = @blueprint.datasets.find { |d| d.id == 'dataset.account' }
|
|
260
265
|
dataset.labels_for_attribute('attr.account.accountemployeecount')
|
|
261
266
|
|
|
262
267
|
dataset = @blueprint.find_dataset('dataset.stage_history')
|
|
@@ -290,7 +295,7 @@ describe GoodData::Model::FromWire do
|
|
|
290
295
|
|
|
291
296
|
it "should be able to parse description from both attributes and facts" do
|
|
292
297
|
expect(@blueprint.find_dataset('dataset.opportunity').anchor.description).to eq 'This is opportunity attribute description'
|
|
293
|
-
expect(@blueprint.find_dataset('dataset.stage_history').facts.find {|f| f.id == 'fact.stage_history.stage_velocity'}.description).to eq 'Velocity description'
|
|
294
|
-
expect(@blueprint.find_dataset('dataset.opp_owner').attributes.find {|f| f.id == 'attr.opp_owner.region'}.description).to eq 'Owner Region description'
|
|
298
|
+
expect(@blueprint.find_dataset('dataset.stage_history').facts.find { |f| f.id == 'fact.stage_history.stage_velocity' }.description).to eq 'Velocity description'
|
|
299
|
+
expect(@blueprint.find_dataset('dataset.opp_owner').attributes.find { |f| f.id == 'attr.opp_owner.region' }.description).to eq 'Owner Region description'
|
|
295
300
|
end
|
|
296
301
|
end
|