mencoro 1.0.0
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 +7 -0
- data/Gemfile +9 -0
- data/README.md +304 -0
- data/Rakefile +10 -0
- data/docs/AcceptedJobResource.md +22 -0
- data/docs/AccountApi.md +141 -0
- data/docs/AiResponseReportResource.md +28 -0
- data/docs/AiResponseResource.md +36 -0
- data/docs/AnalyticsApi.md +1320 -0
- data/docs/ApplyClusteringJobOutcome.md +26 -0
- data/docs/ApplyClusteringJobOutcomeClustersInner.md +22 -0
- data/docs/ApplyClusteringJobOutcomeFailedInner.md +22 -0
- data/docs/ApplyClusteringJobOutcomeSkippedClustersInner.md +20 -0
- data/docs/ApplyClusteringJobOutcomeSuccessfulInner.md +20 -0
- data/docs/AsyncJobResource.md +24 -0
- data/docs/BatchChangeTrackedQueryCheckFrequencyRequestData.md +20 -0
- data/docs/BatchChangeTrackedQueryPassesRequestData.md +20 -0
- data/docs/BatchCreateQueryClustersOutcome.md +20 -0
- data/docs/BatchCreateQueryClustersOutcomeFailedInner.md +22 -0
- data/docs/BatchCreateQueryClustersOutcomeSuccessfulInner.md +20 -0
- data/docs/BatchCreateQueryClustersRequestData.md +18 -0
- data/docs/BatchCreateTrackedQueriesRequestData.md +30 -0
- data/docs/BatchCreateTrackedQueriesResultResource.md +20 -0
- data/docs/BatchCreateTrackedQueriesResultResourceFailedInner.md +26 -0
- data/docs/BatchCreateTrackedQueriesResultResourceSuccessfulInner.md +24 -0
- data/docs/BatchForceCheckTrackedQueries200Response.md +20 -0
- data/docs/BatchForceCheckTrackedQueries200ResponseFailedInner.md +22 -0
- data/docs/BatchPauseTrackedQueries200Response.md +20 -0
- data/docs/BatchPauseTrackedQueries200ResponseFailedInner.md +22 -0
- data/docs/BatchPauseTrackedQueries200ResponseSuccessfulInner.md +18 -0
- data/docs/BatchResumeTrackedQueries200Response.md +20 -0
- data/docs/BatchTargetsRequestData.md +18 -0
- data/docs/BatchWriteOutcome.md +20 -0
- data/docs/BatchWriteOutcomeFailedInner.md +22 -0
- data/docs/BillingApi.md +77 -0
- data/docs/BrandProfileResource.md +24 -0
- data/docs/BulkAddClustersToTrackedQueries200Response.md +20 -0
- data/docs/BulkAddClustersToTrackedQueriesRequest.md +20 -0
- data/docs/BulkRemoveClustersFromTrackedQueries200Response.md +20 -0
- data/docs/BulkRemoveClustersFromTrackedQueriesRequest.md +20 -0
- data/docs/CapturesApi.md +267 -0
- data/docs/ChangeMemberRoleRequest.md +18 -0
- data/docs/ChangeTrackedQueryCheckFrequencyRequestData.md +18 -0
- data/docs/ChangeTrackedQueryPassesRequestData.md +18 -0
- data/docs/CitationResource.md +36 -0
- data/docs/ClusterMembershipRequestData.md +18 -0
- data/docs/ClustersApi.md +465 -0
- data/docs/CompetitorResource.md +24 -0
- data/docs/CreateCompetitorRequest.md +22 -0
- data/docs/CreateInvitation200Response.md +22 -0
- data/docs/CreateInvitation201Response.md +32 -0
- data/docs/CreateInvitationRequest.md +20 -0
- data/docs/CreateOrganization201Response.md +22 -0
- data/docs/CreateOrganizationRequest.md +18 -0
- data/docs/CreateProjectRequest.md +24 -0
- data/docs/CreateProjectRequestCompetitorsInner.md +22 -0
- data/docs/CreateQueryCluster409Response.md +22 -0
- data/docs/CreateQueryClusterRequest.md +18 -0
- data/docs/DeleteQueryCluster200Response.md +22 -0
- data/docs/DiscoveryApi.md +311 -0
- data/docs/EntitlementsResource.md +38 -0
- data/docs/GetAvailableFilters200Response.md +22 -0
- data/docs/GetAvailableFilters200ResponseClustersInner.md +20 -0
- data/docs/GetMeStats200Response.md +20 -0
- data/docs/GetMeStats200ResponseOrganizations.md +18 -0
- data/docs/GetMeStats200ResponseProjects.md +20 -0
- data/docs/GetMembershipStats200Response.md +30 -0
- data/docs/GetMentionSamples400Response.md +24 -0
- data/docs/GetMentionSamples400ResponseDetailsValueInner.md +22 -0
- data/docs/GetMetricGlossary200Response.md +18 -0
- data/docs/GetMetricGlossary200ResponseMetricsInner.md +30 -0
- data/docs/GetOrganizationOverview200Response.md +20 -0
- data/docs/GetOrganizationOverview200ResponseAggregate.md +30 -0
- data/docs/GetOrganizationOverview200ResponseProjectsInner.md +32 -0
- data/docs/GetOrganizationStats200Response.md +22 -0
- data/docs/GetOrganizationStats200ResponseInvitations.md +18 -0
- data/docs/GetOrganizationStats200ResponseMembers.md +18 -0
- data/docs/GetOrganizationStats200ResponseProjects.md +20 -0
- data/docs/GetShareOfVoiceFormula200Response.md +24 -0
- data/docs/GetTrackingCoverage200Response.md +30 -0
- data/docs/GetTrackingCoverage200ResponseSampleInner.md +28 -0
- data/docs/InvitationResource.md +30 -0
- data/docs/InvitationsApi.md +243 -0
- data/docs/JobsApi.md +79 -0
- data/docs/KeywordListingResource.md +88 -0
- data/docs/KeywordListingResourceMentionTypeCounts.md +26 -0
- data/docs/ListAiResponses200Response.md +20 -0
- data/docs/ListCompetitors200Response.md +20 -0
- data/docs/ListInvitations200Response.md +20 -0
- data/docs/ListKeywordListings200Response.md +24 -0
- data/docs/ListMembers200Response.md +20 -0
- data/docs/ListOrganizations200Response.md +20 -0
- data/docs/ListProjects200Response.md +20 -0
- data/docs/ListQueryClusters200Response.md +20 -0
- data/docs/ListSearchSnapshots200Response.md +20 -0
- data/docs/ListShoppingSnapshots200Response.md +20 -0
- data/docs/MeResource.md +34 -0
- data/docs/MemberResource.md +28 -0
- data/docs/MembersApi.md +391 -0
- data/docs/OperationEffect.md +22 -0
- data/docs/OrganizationOperationsApi.md +77 -0
- data/docs/OrganizationResource.md +32 -0
- data/docs/OrganizationsApi.md +807 -0
- data/docs/PreviewOrganizationOperation200Response.md +34 -0
- data/docs/PreviewOrganizationOperation200ResponseOrganization.md +20 -0
- data/docs/PreviewOrganizationOperationRequest.md +24 -0
- data/docs/ProjectDetailResource.md +32 -0
- data/docs/ProjectDetailResourceCompetitorsInner.md +24 -0
- data/docs/ProjectResource.md +50 -0
- data/docs/ProjectedMonthlyChecksResource.md +20 -0
- data/docs/ProjectsApi.md +999 -0
- data/docs/QueryClusterResource.md +22 -0
- data/docs/ReportAiResponseRequest.md +22 -0
- data/docs/SearchResultResource.md +32 -0
- data/docs/SearchSnapshotResource.md +28 -0
- data/docs/SearchTrackedQueries200Response.md +20 -0
- data/docs/ShoppingOfferResource.md +38 -0
- data/docs/ShoppingSnapshotResource.md +28 -0
- data/docs/StartBrandDiscoveryJobRequest.md +20 -0
- data/docs/StartBrandNameSuggestionJobRequest.md +24 -0
- data/docs/StartClusteringJobRequestData.md +22 -0
- data/docs/StartKeywordDiscoveryJobRequest.md +24 -0
- data/docs/StartPromptDiscoveryJobRequest.md +24 -0
- data/docs/SubmittedChecksResource.md +20 -0
- data/docs/SubscriptionResource.md +42 -0
- data/docs/TrackedQueriesApi.md +1549 -0
- data/docs/TrackedQueryCountResource.md +20 -0
- data/docs/TrackedQueryDetailResource.md +38 -0
- data/docs/TrackedQueryResource.md +52 -0
- data/docs/TrackedQueryUsageResource.md +18 -0
- data/docs/UpdateOrganizationRequest.md +22 -0
- data/docs/UpdateProjectBrandProfileRequest.md +20 -0
- data/docs/UpdateProjectRequest.md +18 -0
- data/git_push.sh +57 -0
- data/lib/mencoro/api/account_api.rb +136 -0
- data/lib/mencoro/api/analytics_api.rb +1555 -0
- data/lib/mencoro/api/billing_api.rb +85 -0
- data/lib/mencoro/api/captures_api.rb +338 -0
- data/lib/mencoro/api/clusters_api.rb +548 -0
- data/lib/mencoro/api/discovery_api.rb +360 -0
- data/lib/mencoro/api/invitations_api.rb +302 -0
- data/lib/mencoro/api/jobs_api.rb +91 -0
- data/lib/mencoro/api/members_api.rb +453 -0
- data/lib/mencoro/api/organization_operations_api.rb +90 -0
- data/lib/mencoro/api/organizations_api.rb +835 -0
- data/lib/mencoro/api/projects_api.rb +1158 -0
- data/lib/mencoro/api/tracked_queries_api.rb +1792 -0
- data/lib/mencoro/api_client.rb +441 -0
- data/lib/mencoro/api_error.rb +58 -0
- data/lib/mencoro/api_model_base.rb +88 -0
- data/lib/mencoro/configuration.rb +392 -0
- data/lib/mencoro/models/accepted_job_resource.rb +220 -0
- data/lib/mencoro/models/ai_response_report_resource.rb +311 -0
- data/lib/mencoro/models/ai_response_resource.rb +412 -0
- data/lib/mencoro/models/apply_clustering_job_outcome.rb +199 -0
- data/lib/mencoro/models/apply_clustering_job_outcome_clusters_inner.rb +165 -0
- data/lib/mencoro/models/apply_clustering_job_outcome_failed_inner.rb +165 -0
- data/lib/mencoro/models/apply_clustering_job_outcome_skipped_clusters_inner.rb +156 -0
- data/lib/mencoro/models/apply_clustering_job_outcome_successful_inner.rb +158 -0
- data/lib/mencoro/models/async_job_resource.rb +256 -0
- data/lib/mencoro/models/batch_change_tracked_query_check_frequency_request_data.rb +237 -0
- data/lib/mencoro/models/batch_change_tracked_query_passes_request_data.rb +231 -0
- data/lib/mencoro/models/batch_create_query_clusters_outcome.rb +163 -0
- data/lib/mencoro/models/batch_create_query_clusters_outcome_failed_inner.rb +165 -0
- data/lib/mencoro/models/batch_create_query_clusters_outcome_successful_inner.rb +156 -0
- data/lib/mencoro/models/batch_create_query_clusters_request_data.rb +186 -0
- data/lib/mencoro/models/batch_create_tracked_queries_request_data.rb +399 -0
- data/lib/mencoro/models/batch_create_tracked_queries_result_resource.rb +163 -0
- data/lib/mencoro/models/batch_create_tracked_queries_result_resource_failed_inner.rb +183 -0
- data/lib/mencoro/models/batch_create_tracked_queries_result_resource_successful_inner.rb +174 -0
- data/lib/mencoro/models/batch_force_check_tracked_queries200_response.rb +162 -0
- data/lib/mencoro/models/batch_force_check_tracked_queries200_response_failed_inner.rb +165 -0
- data/lib/mencoro/models/batch_pause_tracked_queries200_response.rb +162 -0
- data/lib/mencoro/models/batch_pause_tracked_queries200_response_failed_inner.rb +165 -0
- data/lib/mencoro/models/batch_pause_tracked_queries200_response_successful_inner.rb +147 -0
- data/lib/mencoro/models/batch_resume_tracked_queries200_response.rb +162 -0
- data/lib/mencoro/models/batch_targets_request_data.rb +186 -0
- data/lib/mencoro/models/batch_write_outcome.rb +163 -0
- data/lib/mencoro/models/batch_write_outcome_failed_inner.rb +166 -0
- data/lib/mencoro/models/brand_profile_resource.rb +235 -0
- data/lib/mencoro/models/bulk_add_clusters_to_tracked_queries200_response.rb +162 -0
- data/lib/mencoro/models/bulk_add_clusters_to_tracked_queries_request.rb +218 -0
- data/lib/mencoro/models/bulk_remove_clusters_from_tracked_queries200_response.rb +162 -0
- data/lib/mencoro/models/bulk_remove_clusters_from_tracked_queries_request.rb +218 -0
- data/lib/mencoro/models/change_member_role_request.rb +181 -0
- data/lib/mencoro/models/change_tracked_query_check_frequency_request_data.rb +190 -0
- data/lib/mencoro/models/change_tracked_query_passes_request_data.rb +184 -0
- data/lib/mencoro/models/citation_resource.rb +306 -0
- data/lib/mencoro/models/cluster_membership_request_data.rb +186 -0
- data/lib/mencoro/models/competitor_resource.rb +250 -0
- data/lib/mencoro/models/create_competitor_request.rb +247 -0
- data/lib/mencoro/models/create_invitation200_response.rb +202 -0
- data/lib/mencoro/models/create_invitation201_response.rb +347 -0
- data/lib/mencoro/models/create_invitation_request.rb +192 -0
- data/lib/mencoro/models/create_organization201_response.rb +166 -0
- data/lib/mencoro/models/create_organization_request.rb +175 -0
- data/lib/mencoro/models/create_project_request.rb +307 -0
- data/lib/mencoro/models/create_project_request_competitors_inner.rb +256 -0
- data/lib/mencoro/models/create_query_cluster409_response.rb +165 -0
- data/lib/mencoro/models/create_query_cluster_request.rb +167 -0
- data/lib/mencoro/models/delete_query_cluster200_response.rb +168 -0
- data/lib/mencoro/models/entitlements_resource.rb +328 -0
- data/lib/mencoro/models/get_available_filters200_response.rb +173 -0
- data/lib/mencoro/models/get_available_filters200_response_clusters_inner.rb +157 -0
- data/lib/mencoro/models/get_me_stats200_response.rb +156 -0
- data/lib/mencoro/models/get_me_stats200_response_organizations.rb +167 -0
- data/lib/mencoro/models/get_me_stats200_response_projects.rb +196 -0
- data/lib/mencoro/models/get_membership_stats200_response.rb +322 -0
- data/lib/mencoro/models/get_mention_samples400_response.rb +231 -0
- data/lib/mencoro/models/get_mention_samples400_response_details_value_inner.rb +168 -0
- data/lib/mencoro/models/get_metric_glossary200_response.rb +149 -0
- data/lib/mencoro/models/get_metric_glossary200_response_metrics_inner.rb +240 -0
- data/lib/mencoro/models/get_organization_overview200_response.rb +158 -0
- data/lib/mencoro/models/get_organization_overview200_response_aggregate.rb +209 -0
- data/lib/mencoro/models/get_organization_overview200_response_projects_inner.rb +218 -0
- data/lib/mencoro/models/get_organization_stats200_response.rb +165 -0
- data/lib/mencoro/models/get_organization_stats200_response_invitations.rb +167 -0
- data/lib/mencoro/models/get_organization_stats200_response_members.rb +167 -0
- data/lib/mencoro/models/get_organization_stats200_response_projects.rb +196 -0
- data/lib/mencoro/models/get_share_of_voice_formula200_response.rb +182 -0
- data/lib/mencoro/models/get_tracking_coverage200_response.rb +209 -0
- data/lib/mencoro/models/get_tracking_coverage200_response_sample_inner.rb +229 -0
- data/lib/mencoro/models/invitation_resource.rb +331 -0
- data/lib/mencoro/models/keyword_listing_resource.rb +798 -0
- data/lib/mencoro/models/keyword_listing_resource_mention_type_counts.rb +184 -0
- data/lib/mencoro/models/list_ai_responses200_response.rb +159 -0
- data/lib/mencoro/models/list_competitors200_response.rb +159 -0
- data/lib/mencoro/models/list_invitations200_response.rb +158 -0
- data/lib/mencoro/models/list_keyword_listings200_response.rb +180 -0
- data/lib/mencoro/models/list_members200_response.rb +158 -0
- data/lib/mencoro/models/list_organizations200_response.rb +158 -0
- data/lib/mencoro/models/list_projects200_response.rb +159 -0
- data/lib/mencoro/models/list_query_clusters200_response.rb +159 -0
- data/lib/mencoro/models/list_search_snapshots200_response.rb +159 -0
- data/lib/mencoro/models/list_shopping_snapshots200_response.rb +159 -0
- data/lib/mencoro/models/me_resource.rb +394 -0
- data/lib/mencoro/models/member_resource.rb +322 -0
- data/lib/mencoro/models/operation_effect.rb +204 -0
- data/lib/mencoro/models/organization_resource.rb +326 -0
- data/lib/mencoro/models/preview_organization_operation200_response.rb +236 -0
- data/lib/mencoro/models/preview_organization_operation200_response_organization.rb +158 -0
- data/lib/mencoro/models/preview_organization_operation_request.rb +213 -0
- data/lib/mencoro/models/project_detail_resource.rb +380 -0
- data/lib/mencoro/models/project_detail_resource_competitors_inner.rb +178 -0
- data/lib/mencoro/models/project_resource.rb +422 -0
- data/lib/mencoro/models/projected_monthly_checks_resource.rb +211 -0
- data/lib/mencoro/models/query_cluster_resource.rb +229 -0
- data/lib/mencoro/models/report_ai_response_request.rb +227 -0
- data/lib/mencoro/models/search_result_resource.rb +284 -0
- data/lib/mencoro/models/search_snapshot_resource.rb +302 -0
- data/lib/mencoro/models/search_tracked_queries200_response.rb +158 -0
- data/lib/mencoro/models/shopping_offer_resource.rb +381 -0
- data/lib/mencoro/models/shopping_snapshot_resource.rb +302 -0
- data/lib/mencoro/models/start_brand_discovery_job_request.rb +185 -0
- data/lib/mencoro/models/start_brand_name_suggestion_job_request.rb +287 -0
- data/lib/mencoro/models/start_clustering_job_request_data.rb +249 -0
- data/lib/mencoro/models/start_keyword_discovery_job_request.rb +266 -0
- data/lib/mencoro/models/start_prompt_discovery_job_request.rb +276 -0
- data/lib/mencoro/models/submitted_checks_resource.rb +195 -0
- data/lib/mencoro/models/subscription_resource.rb +362 -0
- data/lib/mencoro/models/tracked_query_count_resource.rb +193 -0
- data/lib/mencoro/models/tracked_query_detail_resource.rb +440 -0
- data/lib/mencoro/models/tracked_query_resource.rb +492 -0
- data/lib/mencoro/models/tracked_query_usage_resource.rb +175 -0
- data/lib/mencoro/models/update_organization_request.rb +195 -0
- data/lib/mencoro/models/update_project_brand_profile_request.rb +218 -0
- data/lib/mencoro/models/update_project_request.rb +182 -0
- data/lib/mencoro/version.rb +15 -0
- data/lib/mencoro.rb +169 -0
- data/mencoro.gemspec +41 -0
- data/spec/api/account_api_spec.rb +57 -0
- data/spec/api/analytics_api_spec.rb +318 -0
- data/spec/api/billing_api_spec.rb +47 -0
- data/spec/api/captures_api_spec.rb +93 -0
- data/spec/api/clusters_api_spec.rb +126 -0
- data/spec/api/discovery_api_spec.rb +94 -0
- data/spec/api/invitations_api_spec.rb +83 -0
- data/spec/api/jobs_api_spec.rb +48 -0
- data/spec/api/members_api_spec.rb +111 -0
- data/spec/api/organization_operations_api_spec.rb +47 -0
- data/spec/api/organizations_api_spec.rb +181 -0
- data/spec/api/projects_api_spec.rb +229 -0
- data/spec/api/tracked_queries_api_spec.rb +344 -0
- data/spec/models/accepted_job_resource_spec.rb +48 -0
- data/spec/models/ai_response_report_resource_spec.rb +70 -0
- data/spec/models/ai_response_resource_spec.rb +90 -0
- data/spec/models/apply_clustering_job_outcome_clusters_inner_spec.rb +48 -0
- data/spec/models/apply_clustering_job_outcome_failed_inner_spec.rb +48 -0
- data/spec/models/apply_clustering_job_outcome_skipped_clusters_inner_spec.rb +42 -0
- data/spec/models/apply_clustering_job_outcome_spec.rb +60 -0
- data/spec/models/apply_clustering_job_outcome_successful_inner_spec.rb +42 -0
- data/spec/models/async_job_resource_spec.rb +62 -0
- data/spec/models/batch_change_tracked_query_check_frequency_request_data_spec.rb +46 -0
- data/spec/models/batch_change_tracked_query_passes_request_data_spec.rb +42 -0
- data/spec/models/batch_create_query_clusters_outcome_failed_inner_spec.rb +48 -0
- data/spec/models/batch_create_query_clusters_outcome_spec.rb +42 -0
- data/spec/models/batch_create_query_clusters_outcome_successful_inner_spec.rb +42 -0
- data/spec/models/batch_create_query_clusters_request_data_spec.rb +36 -0
- data/spec/models/batch_create_tracked_queries_request_data_spec.rb +80 -0
- data/spec/models/batch_create_tracked_queries_result_resource_failed_inner_spec.rb +60 -0
- data/spec/models/batch_create_tracked_queries_result_resource_spec.rb +42 -0
- data/spec/models/batch_create_tracked_queries_result_resource_successful_inner_spec.rb +54 -0
- data/spec/models/batch_force_check_tracked_queries200_response_failed_inner_spec.rb +48 -0
- data/spec/models/batch_force_check_tracked_queries200_response_spec.rb +42 -0
- data/spec/models/batch_pause_tracked_queries200_response_failed_inner_spec.rb +48 -0
- data/spec/models/batch_pause_tracked_queries200_response_spec.rb +42 -0
- data/spec/models/batch_pause_tracked_queries200_response_successful_inner_spec.rb +36 -0
- data/spec/models/batch_resume_tracked_queries200_response_spec.rb +42 -0
- data/spec/models/batch_targets_request_data_spec.rb +36 -0
- data/spec/models/batch_write_outcome_failed_inner_spec.rb +48 -0
- data/spec/models/batch_write_outcome_spec.rb +42 -0
- data/spec/models/brand_profile_resource_spec.rb +54 -0
- data/spec/models/bulk_add_clusters_to_tracked_queries200_response_spec.rb +42 -0
- data/spec/models/bulk_add_clusters_to_tracked_queries_request_spec.rb +42 -0
- data/spec/models/bulk_remove_clusters_from_tracked_queries200_response_spec.rb +42 -0
- data/spec/models/bulk_remove_clusters_from_tracked_queries_request_spec.rb +42 -0
- data/spec/models/change_member_role_request_spec.rb +40 -0
- data/spec/models/change_tracked_query_check_frequency_request_data_spec.rb +40 -0
- data/spec/models/change_tracked_query_passes_request_data_spec.rb +36 -0
- data/spec/models/citation_resource_spec.rb +90 -0
- data/spec/models/cluster_membership_request_data_spec.rb +36 -0
- data/spec/models/competitor_resource_spec.rb +54 -0
- data/spec/models/create_competitor_request_spec.rb +48 -0
- data/spec/models/create_invitation200_response_spec.rb +52 -0
- data/spec/models/create_invitation201_response_spec.rb +86 -0
- data/spec/models/create_invitation_request_spec.rb +46 -0
- data/spec/models/create_organization201_response_spec.rb +48 -0
- data/spec/models/create_organization_request_spec.rb +36 -0
- data/spec/models/create_project_request_competitors_inner_spec.rb +48 -0
- data/spec/models/create_project_request_spec.rb +54 -0
- data/spec/models/create_query_cluster409_response_spec.rb +48 -0
- data/spec/models/create_query_cluster_request_spec.rb +36 -0
- data/spec/models/delete_query_cluster200_response_spec.rb +48 -0
- data/spec/models/entitlements_resource_spec.rb +104 -0
- data/spec/models/get_available_filters200_response_clusters_inner_spec.rb +42 -0
- data/spec/models/get_available_filters200_response_spec.rb +48 -0
- data/spec/models/get_me_stats200_response_organizations_spec.rb +36 -0
- data/spec/models/get_me_stats200_response_projects_spec.rb +42 -0
- data/spec/models/get_me_stats200_response_spec.rb +42 -0
- data/spec/models/get_membership_stats200_response_spec.rb +72 -0
- data/spec/models/get_mention_samples400_response_details_value_inner_spec.rb +48 -0
- data/spec/models/get_mention_samples400_response_spec.rb +54 -0
- data/spec/models/get_metric_glossary200_response_metrics_inner_spec.rb +76 -0
- data/spec/models/get_metric_glossary200_response_spec.rb +36 -0
- data/spec/models/get_organization_overview200_response_aggregate_spec.rb +72 -0
- data/spec/models/get_organization_overview200_response_projects_inner_spec.rb +78 -0
- data/spec/models/get_organization_overview200_response_spec.rb +42 -0
- data/spec/models/get_organization_stats200_response_invitations_spec.rb +36 -0
- data/spec/models/get_organization_stats200_response_members_spec.rb +36 -0
- data/spec/models/get_organization_stats200_response_projects_spec.rb +42 -0
- data/spec/models/get_organization_stats200_response_spec.rb +48 -0
- data/spec/models/get_share_of_voice_formula200_response_spec.rb +54 -0
- data/spec/models/get_tracking_coverage200_response_sample_inner_spec.rb +70 -0
- data/spec/models/get_tracking_coverage200_response_spec.rb +72 -0
- data/spec/models/invitation_resource_spec.rb +80 -0
- data/spec/models/keyword_listing_resource_mention_type_counts_spec.rb +60 -0
- data/spec/models/keyword_listing_resource_spec.rb +262 -0
- data/spec/models/list_ai_responses200_response_spec.rb +42 -0
- data/spec/models/list_competitors200_response_spec.rb +42 -0
- data/spec/models/list_invitations200_response_spec.rb +42 -0
- data/spec/models/list_keyword_listings200_response_spec.rb +54 -0
- data/spec/models/list_members200_response_spec.rb +42 -0
- data/spec/models/list_organizations200_response_spec.rb +42 -0
- data/spec/models/list_projects200_response_spec.rb +42 -0
- data/spec/models/list_query_clusters200_response_spec.rb +42 -0
- data/spec/models/list_search_snapshots200_response_spec.rb +42 -0
- data/spec/models/list_shopping_snapshots200_response_spec.rb +42 -0
- data/spec/models/me_resource_spec.rb +92 -0
- data/spec/models/member_resource_spec.rb +74 -0
- data/spec/models/operation_effect_spec.rb +48 -0
- data/spec/models/organization_resource_spec.rb +86 -0
- data/spec/models/preview_organization_operation200_response_organization_spec.rb +42 -0
- data/spec/models/preview_organization_operation200_response_spec.rb +84 -0
- data/spec/models/preview_organization_operation_request_spec.rb +58 -0
- data/spec/models/project_detail_resource_competitors_inner_spec.rb +54 -0
- data/spec/models/project_detail_resource_spec.rb +82 -0
- data/spec/models/project_resource_spec.rb +136 -0
- data/spec/models/projected_monthly_checks_resource_spec.rb +42 -0
- data/spec/models/query_cluster_resource_spec.rb +48 -0
- data/spec/models/report_ai_response_request_spec.rb +52 -0
- data/spec/models/search_result_resource_spec.rb +78 -0
- data/spec/models/search_snapshot_resource_spec.rb +66 -0
- data/spec/models/search_tracked_queries200_response_spec.rb +42 -0
- data/spec/models/shopping_offer_resource_spec.rb +96 -0
- data/spec/models/shopping_snapshot_resource_spec.rb +66 -0
- data/spec/models/start_brand_discovery_job_request_spec.rb +42 -0
- data/spec/models/start_brand_name_suggestion_job_request_spec.rb +54 -0
- data/spec/models/start_clustering_job_request_data_spec.rb +52 -0
- data/spec/models/start_keyword_discovery_job_request_spec.rb +54 -0
- data/spec/models/start_prompt_discovery_job_request_spec.rb +54 -0
- data/spec/models/submitted_checks_resource_spec.rb +42 -0
- data/spec/models/subscription_resource_spec.rb +120 -0
- data/spec/models/tracked_query_count_resource_spec.rb +42 -0
- data/spec/models/tracked_query_detail_resource_spec.rb +108 -0
- data/spec/models/tracked_query_resource_spec.rb +150 -0
- data/spec/models/tracked_query_usage_resource_spec.rb +36 -0
- data/spec/models/update_organization_request_spec.rb +48 -0
- data/spec/models/update_project_brand_profile_request_spec.rb +42 -0
- data/spec/models/update_project_request_spec.rb +36 -0
- data/spec/spec_helper.rb +111 -0
- metadata +641 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Mencoro API
|
|
3
|
+
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
|
7
|
+
Contact: support@mencoro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.24.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for Mencoro::CapturesApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'CapturesApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = Mencoro::CapturesApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of CapturesApi' do
|
|
30
|
+
it 'should create an instance of CapturesApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(Mencoro::CapturesApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for list_ai_responses
|
|
36
|
+
# List captured AI answers
|
|
37
|
+
# Minimum role: viewer. Every AI answer captured for a project, newest first, one page at a time. This is the evidence under the analytics operations: the full answer text and the sources the engine cited, exactly as captured. Read `unresolved` on a citation before attributing its domain — a true value means the URL is still a redirector and the domain belongs to that redirector, not to the publisher; count the citation, do not credit the site. `passIndex` and `passCount` describe multi-pass sampling: rows sharing a `trackedQueryId` and `capturedAt` are passes of one run, not duplicates, so aggregating across them without dividing by `passCount` double-counts that run. `responseText` is the whole answer, so a page of 100 is a large response — lower `limit` rather than paging blind. Captures are kept for 16 months and purged after that; a `dateFrom` before the window is rejected rather than answered with an empty page. `total` counts every capture the filter matches, not the size of this page.
|
|
38
|
+
# @param organization_id
|
|
39
|
+
# @param project_id
|
|
40
|
+
# @param [Hash] opts the optional parameters
|
|
41
|
+
# @option opts [Date] :date_from Inclusive lower bound, widened to 00:00:00 UTC of the named day. Must be inside the retention window.
|
|
42
|
+
# @option opts [Date] :date_to Inclusive upper bound, widened to 23:59:59 UTC of the named day.
|
|
43
|
+
# @option opts [String] :tracked_query_id Only captures of this tracked query. Must belong to the project in the path.
|
|
44
|
+
# @option opts [Array<String>] :engines Only captures from these AI engines. Repeat the parameter or pass a comma-separated list. An empty filter means every engine.
|
|
45
|
+
# @option opts [Integer] :limit Page size. A larger value is rejected, never silently reduced.
|
|
46
|
+
# @option opts [Integer] :offset Number of captures to skip before the page starts.
|
|
47
|
+
# @option opts [String] :sort_order Direction of the capture-time ordering. An unknown value is rejected, not replaced by the default.
|
|
48
|
+
# @return [ListAiResponses200Response]
|
|
49
|
+
describe 'list_ai_responses test' do
|
|
50
|
+
it 'should work' do
|
|
51
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# unit tests for list_search_snapshots
|
|
56
|
+
# List captured search-results pages
|
|
57
|
+
# Minimum role: viewer. Every organic search page captured for a project, newest first, one page at a time. This is what the rank figures in the analytics operations were computed from: the ranked results as they stood at `capturedAt`, not as they stand now. Read `unresolved` on a result before attributing its domain — a true value means the URL is still a redirector and the domain belongs to that redirector; count the result, do not credit the site. `rating` and `ratingVotes` come from a rich-result star rating when Google showed one and are absent far more often than present; their absence says nothing about the page. There is no `engines` filter because every capture here comes from Google SERP. Captures are kept for 16 months and purged after that; a `dateFrom` before the window is rejected rather than answered with an empty page. `total` counts every capture the filter matches, not the size of this page.
|
|
58
|
+
# @param organization_id
|
|
59
|
+
# @param project_id
|
|
60
|
+
# @param [Hash] opts the optional parameters
|
|
61
|
+
# @option opts [Date] :date_from Inclusive lower bound, widened to 00:00:00 UTC of the named day. Must be inside the retention window.
|
|
62
|
+
# @option opts [Date] :date_to Inclusive upper bound, widened to 23:59:59 UTC of the named day.
|
|
63
|
+
# @option opts [String] :tracked_query_id Only captures of this tracked query. Must belong to the project in the path.
|
|
64
|
+
# @option opts [Integer] :limit Page size. A larger value is rejected, never silently reduced.
|
|
65
|
+
# @option opts [Integer] :offset Number of captures to skip before the page starts.
|
|
66
|
+
# @option opts [String] :sort_order Direction of the capture-time ordering. An unknown value is rejected, not replaced by the default.
|
|
67
|
+
# @return [ListSearchSnapshots200Response]
|
|
68
|
+
describe 'list_search_snapshots test' do
|
|
69
|
+
it 'should work' do
|
|
70
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# unit tests for list_shopping_snapshots
|
|
75
|
+
# List captured shopping-results pages
|
|
76
|
+
# Minimum role: viewer. Every shopping page captured for a project, newest first, one page at a time: the ranked offers as they stood at `capturedAt`. `price` and `currency` are what the seller showed at that moment — no tax normalisation, no shipping, no conversion — and two offers in one snapshot may carry different currencies, so convert before comparing. `productId` is the marketplace's own identifier for the listing, stable enough to follow one offer across snapshots, and it is not a Mencoro id. Offers turn over far faster than organic results, so two snapshots days apart routinely share none; that is the marketplace behaving normally, not a gap in the capture. Unlike organic results, a shopping offer carries no `unresolved` flag: the capture pipeline does not record one for this surface. Shopping captures are trimmed by the same raw-data purge as AI answers and search pages, so the same retention floor applies: a `dateFrom` before it is refused rather than answered with an empty page. `total` counts every capture the filter matches, not the size of this page.
|
|
77
|
+
# @param organization_id
|
|
78
|
+
# @param project_id
|
|
79
|
+
# @param [Hash] opts the optional parameters
|
|
80
|
+
# @option opts [Date] :date_from Inclusive lower bound, widened to 00:00:00 UTC of the named day. A date before the retention floor is refused rather than answered with an empty page: shopping captures are aged out by the raw-data purge like every other capture.
|
|
81
|
+
# @option opts [Date] :date_to Inclusive upper bound, widened to 23:59:59 UTC of the named day.
|
|
82
|
+
# @option opts [String] :tracked_query_id Only captures of this tracked query. Must belong to the project in the path.
|
|
83
|
+
# @option opts [Integer] :limit Page size. A larger value is rejected, never silently reduced.
|
|
84
|
+
# @option opts [Integer] :offset Number of captures to skip before the page starts.
|
|
85
|
+
# @option opts [String] :sort_order Direction of the capture-time ordering. An unknown value is rejected, not replaced by the default.
|
|
86
|
+
# @return [ListShoppingSnapshots200Response]
|
|
87
|
+
describe 'list_shopping_snapshots test' do
|
|
88
|
+
it 'should work' do
|
|
89
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
end
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Mencoro API
|
|
3
|
+
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
|
7
|
+
Contact: support@mencoro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.24.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for Mencoro::ClustersApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'ClustersApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = Mencoro::ClustersApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of ClustersApi' do
|
|
30
|
+
it 'should create an instance of ClustersApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(Mencoro::ClustersApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for apply_clustering_job
|
|
36
|
+
# Apply the result of a clustering job
|
|
37
|
+
# Minimum role: manager. Writes a completed clustering job onto the tracked queries it was computed for: it creates the clusters the job proposed that the project does not have yet, then assigns each tracked query according to the merge mode the job was started with — fill_gaps leaves already grouped queries alone, add_on_top only adds, full_regroup replaces a query's clusters with the proposed set and therefore REMOVES clusters that are not in it — but only for a tracked query the job actually returned an assignment for. A tracked query the job was started over and produced no assignment for is listed under `unassigned` and left exactly as it was, under every mode; it is not treated as \"belongs to no cluster\" and is never stripped. That matters most with restrictToExistingClusters, where the model is expected to return nothing for queries that fit no existing cluster. The body must be empty: the assignments, the target tracked queries and the mode all come from the job, so this call cannot apply something the job did not produce. Synchronous and partially successful — always 200, with each tracked query under `successful` or `failed`, and nothing rolled back because one failed. A job that is not completed, or one that produced no assignments, is refused with 409. Requires the write capability and an Idempotency-Key header; repeating the key returns the first answer rather than applying twice.
|
|
38
|
+
# @param organization_id
|
|
39
|
+
# @param project_id
|
|
40
|
+
# @param job_id Must be a clustering job started for this organization and project.
|
|
41
|
+
# @param idempotency_key Repeat it to retry a lost response without applying the job twice.
|
|
42
|
+
# @param [Hash] opts the optional parameters
|
|
43
|
+
# @return [ApplyClusteringJobOutcome]
|
|
44
|
+
describe 'apply_clustering_job test' do
|
|
45
|
+
it 'should work' do
|
|
46
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# unit tests for batch_create_query_clusters
|
|
51
|
+
# Create several keyword clusters at once
|
|
52
|
+
# Minimum role: manager. Creates up to 100 empty keyword clusters in one call. Names are trimmed and lower-cased and repeated names in the body are collapsed before anything is written. Partial success: the answer is always 200 and reports every name under `successful` or under `failed` — a name already taken in the project fails with query_cluster_name_already_exists and is NOT resolved to the existing cluster, while the other names are still created. Nothing is rolled back because one name failed. The clusters are created empty; no tracked query is assigned to them. The organization must not be archived; an archived project IS refused with 409, stricter than the Mencoro app, which lets cluster writes into one. Requires the write capability and an Idempotency-Key header.
|
|
53
|
+
# @param organization_id
|
|
54
|
+
# @param project_id
|
|
55
|
+
# @param idempotency_key Repeat it to retry a lost response without creating the batch twice.
|
|
56
|
+
# @param batch_create_query_clusters_request_data
|
|
57
|
+
# @param [Hash] opts the optional parameters
|
|
58
|
+
# @return [BatchCreateQueryClustersOutcome]
|
|
59
|
+
describe 'batch_create_query_clusters test' do
|
|
60
|
+
it 'should work' do
|
|
61
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# unit tests for create_query_cluster
|
|
66
|
+
# Create a keyword cluster
|
|
67
|
+
# Minimum role: manager. Creates one empty keyword cluster in the project. The name is trimmed and lower-cased before it is stored, and it must be unique within the project: a name that already exists is refused with 409 and nothing is merged into the existing cluster. The cluster starts with no tracked queries in it — this operation does not assign anything to it. The organization must not be archived; an archived project IS refused with 409, stricter than the Mencoro app, which lets cluster writes into one. Requires the write capability and an Idempotency-Key header.
|
|
68
|
+
# @param organization_id
|
|
69
|
+
# @param project_id
|
|
70
|
+
# @param idempotency_key A token you choose per operation, 8 to 255 printable ASCII characters with no spaces; a UUID is the obvious choice. Repeat it to retry a lost response without creating a second cluster. The key is scoped to your API key, and it is bound to the method, the path and the body of the first attempt: repeating it with anything else changed is refused with 409 rather than replayed.
|
|
71
|
+
# @param create_query_cluster_request
|
|
72
|
+
# @param [Hash] opts the optional parameters
|
|
73
|
+
# @return [QueryClusterResource]
|
|
74
|
+
describe 'create_query_cluster test' do
|
|
75
|
+
it 'should work' do
|
|
76
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# unit tests for delete_query_cluster
|
|
81
|
+
# Delete a keyword cluster
|
|
82
|
+
# Minimum role: manager. Deletes one keyword cluster. The tracked queries that were in it are NOT deleted: they are unassigned from this cluster and keep every other cluster they belong to. Analytics filtered by this cluster id return nothing afterwards, including for dates before the deletion, because that filter reads current membership. This cannot be undone — recreating a cluster with the same name produces a new id and an empty cluster. The organization must not be archived, and neither must the project: an archived project IS refused with 409, stricter than the Mencoro app, which lets cluster writes into one. Requires the write capability and an Idempotency-Key header.
|
|
83
|
+
# @param organization_id
|
|
84
|
+
# @param project_id
|
|
85
|
+
# @param cluster_id Must be a cluster of the project in the path.
|
|
86
|
+
# @param idempotency_key Repeat it to retry a lost response; a fresh key answers 404 once the cluster is gone.
|
|
87
|
+
# @param [Hash] opts the optional parameters
|
|
88
|
+
# @return [DeleteQueryCluster200Response]
|
|
89
|
+
describe 'delete_query_cluster test' do
|
|
90
|
+
it 'should work' do
|
|
91
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# unit tests for rename_query_cluster
|
|
96
|
+
# Rename a keyword cluster
|
|
97
|
+
# Minimum role: manager. Changes the name of one keyword cluster and nothing else: the tracked queries assigned to it are untouched, and its id does not change, so nothing a client stored breaks. The new name is trimmed and lower-cased and must be unique within the project; a collision is refused with 409. Renaming to the name the cluster already has is accepted and is a no-op. The organization must not be archived; an archived project IS refused with 409, stricter than the Mencoro app, which lets cluster writes into one. Requires the write capability and an Idempotency-Key header.
|
|
98
|
+
# @param organization_id
|
|
99
|
+
# @param project_id
|
|
100
|
+
# @param cluster_id Must be a cluster of the project in the path.
|
|
101
|
+
# @param idempotency_key Repeat it to retry a lost response without renaming twice.
|
|
102
|
+
# @param create_query_cluster_request
|
|
103
|
+
# @param [Hash] opts the optional parameters
|
|
104
|
+
# @return [QueryClusterResource]
|
|
105
|
+
describe 'rename_query_cluster test' do
|
|
106
|
+
it 'should work' do
|
|
107
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# unit tests for start_clustering_job
|
|
112
|
+
# Start a keyword clustering job
|
|
113
|
+
# Minimum role: manager. Asks the clustering service to propose keyword clusters for up to 500 tracked queries of the project, and answers 202 with the job to poll — the work runs in the background and a 202 says it was accepted, never that it succeeded. THE JOB WRITES NOTHING: it produces a proposal, and nothing changes until it is applied through the apply operation, which is a separate call. Duplicate query texts within the selection are sent once. Requires an entitled subscription (402 otherwise) and the organization must be active and the project not archived. Rate limited to 10 starts per minute per organization, shared with the same operation in the web application. Requires the write capability and an Idempotency-Key header; repeating the key returns the first job rather than starting a second.
|
|
114
|
+
# @param organization_id
|
|
115
|
+
# @param project_id
|
|
116
|
+
# @param idempotency_key Repeat it to retry a lost response without starting a second job.
|
|
117
|
+
# @param start_clustering_job_request_data
|
|
118
|
+
# @param [Hash] opts the optional parameters
|
|
119
|
+
# @return [AcceptedJobResource]
|
|
120
|
+
describe 'start_clustering_job test' do
|
|
121
|
+
it 'should work' do
|
|
122
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Mencoro API
|
|
3
|
+
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
|
7
|
+
Contact: support@mencoro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.24.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for Mencoro::DiscoveryApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'DiscoveryApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = Mencoro::DiscoveryApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of DiscoveryApi' do
|
|
30
|
+
it 'should create an instance of DiscoveryApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(Mencoro::DiscoveryApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for start_brand_discovery_job
|
|
36
|
+
# Start a brand discovery job for a project
|
|
37
|
+
# Minimum role: manager. Starts background discovery of the brands and competitors around a project and answers 202 with the job to poll; it never returns brands inline. The job PROPOSES names: it creates and updates nothing, so neither the brand profile nor the competitor list changes because this endpoint was called. The organization must be active. Unlike keyword and prompt discovery this operation does not require an entitled subscription, matching the application behaviour it mirrors. Ten starts per minute per organization, counted across every key of every member and shared with the same operation in the Mencoro app; a retry carrying an Idempotency-Key already answered is served from the record and does not count. A project whose brand monitoring profile has not been created yet is still accepted and still billed: the job runs grounded on the project name alone, with no website domains, brand names or competitors to work from, and completes normally. Configure the brand profile first if you want the discovery grounded.
|
|
38
|
+
# @param organization_id
|
|
39
|
+
# @param project_id Must belong to the organization in the path.
|
|
40
|
+
# @param idempotency_key Repeat it to retry a start whose response was lost; the same key returns the same job instead of starting a second one.
|
|
41
|
+
# @param [Hash] opts the optional parameters
|
|
42
|
+
# @option opts [StartBrandDiscoveryJobRequest] :start_brand_discovery_job_request
|
|
43
|
+
# @return [AcceptedJobResource]
|
|
44
|
+
describe 'start_brand_discovery_job test' do
|
|
45
|
+
it 'should work' do
|
|
46
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# unit tests for start_brand_name_suggestion_job
|
|
51
|
+
# Start a brand-name alias suggestion job
|
|
52
|
+
# Minimum role: manager. Starts a background, web-search-grounded job that suggests alias spellings for one entity - a brand, a project or a competitor - described entirely by the body, and answers 202 with the job to poll; it never returns suggestions inline. The entity need not exist: nothing is looked up, nothing is attached and nothing is saved, so the suggestions are the caller's to apply. Names sent in `enteredBrandNames` are excluded from the result. The organization must be active; no subscription is required, matching the application behaviour this mirrors. Ten starts per minute per organization, counted across every key of every member; a retry carrying an Idempotency-Key already answered is served from the record and does not count.
|
|
53
|
+
# @param organization_id
|
|
54
|
+
# @param idempotency_key Repeat it to retry a start whose response was lost; the same key returns the same job instead of starting a second one.
|
|
55
|
+
# @param start_brand_name_suggestion_job_request
|
|
56
|
+
# @param [Hash] opts the optional parameters
|
|
57
|
+
# @return [AcceptedJobResource]
|
|
58
|
+
describe 'start_brand_name_suggestion_job test' do
|
|
59
|
+
it 'should work' do
|
|
60
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# unit tests for start_keyword_discovery_job
|
|
65
|
+
# Start a keyword discovery job for a project
|
|
66
|
+
# Minimum role: manager. Starts background keyword discovery from free-text seed input and answers 202 with the job to poll; it never returns keywords inline. The job SUGGESTS keywords - it creates no tracked queries and changes nothing in the project, so a completed job is a list to choose from, not work that has been applied. Queries the project already tracks are excluded from the suggestions automatically; `excludeQueries` adds more on top for this run only. The organization must be active and hold an entitled subscription, because the run spends provider budget. Ten starts per minute per organization, counted across every key of every member; a retry carrying an Idempotency-Key already answered is served from the record and does not count. Run tuning is not exposed: the discovery fan-out uses provider defaults.
|
|
67
|
+
# @param organization_id
|
|
68
|
+
# @param project_id Must belong to the organization in the path.
|
|
69
|
+
# @param idempotency_key Repeat it to retry a start whose response was lost; the same key returns the same job instead of starting a second one.
|
|
70
|
+
# @param start_keyword_discovery_job_request
|
|
71
|
+
# @param [Hash] opts the optional parameters
|
|
72
|
+
# @return [AcceptedJobResource]
|
|
73
|
+
describe 'start_keyword_discovery_job test' do
|
|
74
|
+
it 'should work' do
|
|
75
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# unit tests for start_prompt_discovery_job
|
|
80
|
+
# Start a geo prompt discovery job for a project
|
|
81
|
+
# Minimum role: manager. Starts background discovery of natural-language prompts - the questions an answer engine gets asked - from free-text seed input, and answers 202 with the job to poll; it never returns prompts inline. The job SUGGESTS prompts: it creates no tracked queries and changes nothing in the project. `country` is required here, unlike keyword discovery, because a prompt is a question asked from somewhere and the provider request has no default for it. Queries the project already tracks are excluded automatically; `excludeQueries` adds more for this run only. The organization must be active and hold an entitled subscription, because the run spends provider budget. Ten starts per minute per organization, counted across every key of every member; a retry carrying an Idempotency-Key already answered is served from the record and does not count. Run tuning is not exposed: the discovery fan-out uses provider defaults.
|
|
82
|
+
# @param organization_id
|
|
83
|
+
# @param project_id Must belong to the organization in the path.
|
|
84
|
+
# @param idempotency_key Repeat it to retry a start whose response was lost; the same key returns the same job instead of starting a second one.
|
|
85
|
+
# @param start_prompt_discovery_job_request
|
|
86
|
+
# @param [Hash] opts the optional parameters
|
|
87
|
+
# @return [AcceptedJobResource]
|
|
88
|
+
describe 'start_prompt_discovery_job test' do
|
|
89
|
+
it 'should work' do
|
|
90
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Mencoro API
|
|
3
|
+
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
|
7
|
+
Contact: support@mencoro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.24.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for Mencoro::InvitationsApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'InvitationsApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = Mencoro::InvitationsApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of InvitationsApi' do
|
|
30
|
+
it 'should create an instance of InvitationsApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(Mencoro::InvitationsApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for cancel_invitation
|
|
36
|
+
# Cancel a pending invitation
|
|
37
|
+
# Minimum role: owner. The link already emailed to the invitee stops working. Only a pending invitation can be cancelled; one that was accepted, rejected or has expired is refused.
|
|
38
|
+
# @param organization_id
|
|
39
|
+
# @param invitation_id
|
|
40
|
+
# @param x_mencoro_confirmation
|
|
41
|
+
# @param idempotency_key
|
|
42
|
+
# @param [Hash] opts the optional parameters
|
|
43
|
+
# @return [InvitationResource]
|
|
44
|
+
describe 'cancel_invitation test' do
|
|
45
|
+
it 'should work' do
|
|
46
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# unit tests for create_invitation
|
|
51
|
+
# Invite somebody to an organization
|
|
52
|
+
# Minimum role: owner. Sends an invitation email that expires after 14 days. If the address already belongs to an active member the call succeeds and creates nothing - answered as 200 with created=false rather than 201, so a client can tell the two apart. Preview it first; the preview says which of the two will happen.
|
|
53
|
+
# @param organization_id
|
|
54
|
+
# @param x_mencoro_confirmation
|
|
55
|
+
# @param idempotency_key
|
|
56
|
+
# @param create_invitation_request
|
|
57
|
+
# @param [Hash] opts the optional parameters
|
|
58
|
+
# @return [CreateInvitation200Response]
|
|
59
|
+
describe 'create_invitation test' do
|
|
60
|
+
it 'should work' do
|
|
61
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# unit tests for list_invitations
|
|
66
|
+
# List an organization's invitations
|
|
67
|
+
# Minimum role: owner. Returns the invitations issued for this organization, in every state. The invitation token is never returned. `status` matches the stored state, so an invitation that has passed its `expiresAt` is still listed as pending until it is transitioned; compare `expiresAt` to decide. Rows are ordered by the chosen sort field, and invitations sharing the same value keep no guaranteed relative order across pages.Send `Accept: text/csv` to receive the same page as a CSV download instead of JSON: same filters, same authorization, same page window and the same maximum of 100 rows — it is this page in another format, not a bulk export, so a whole collection is still read by paging. The CSV carries no `total`, because a table whose every row is a record has nowhere to put one; read it from the JSON representation of the same request. Cells beginning with `=`, `+`, `-` or `@` are prefixed with an apostrophe so a spreadsheet treats them as text rather than running them as formulas.
|
|
68
|
+
# @param organization_id
|
|
69
|
+
# @param [Hash] opts the optional parameters
|
|
70
|
+
# @option opts [Integer] :limit
|
|
71
|
+
# @option opts [Integer] :offset
|
|
72
|
+
# @option opts [String] :search Matches part of the invited email address.
|
|
73
|
+
# @option opts [String] :status Absent means every state.
|
|
74
|
+
# @option opts [String] :sort_by
|
|
75
|
+
# @option opts [String] :sort_order
|
|
76
|
+
# @return [ListInvitations200Response]
|
|
77
|
+
describe 'list_invitations test' do
|
|
78
|
+
it 'should work' do
|
|
79
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Mencoro API
|
|
3
|
+
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
|
7
|
+
Contact: support@mencoro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.24.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for Mencoro::JobsApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'JobsApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = Mencoro::JobsApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of JobsApi' do
|
|
30
|
+
it 'should create an instance of JobsApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(Mencoro::JobsApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for get_async_job
|
|
36
|
+
# Get an asynchronous job
|
|
37
|
+
# Minimum role: manager. The status of one asynchronous job started inside this organization — geo prompt discovery, keyword discovery, query clustering, brand discovery or brand-name suggestion — and, once it has completed, its result. Poll it until `status` is terminal: `completed` or `failed`. A null `result` means the result is not known, either because the job is still in flight or because it failed; it never means the job produced an empty result. A failed job carries no reason: the stored one is an internal exception message, not a published field. A job started by another organization, a job of a type this API does not publish, and a job id that does not exist all answer 404 alike, so the API never confirms that an inaccessible job exists.
|
|
38
|
+
# @param organization_id
|
|
39
|
+
# @param job_id Must be a job started inside the organization in the path.
|
|
40
|
+
# @param [Hash] opts the optional parameters
|
|
41
|
+
# @return [AsyncJobResource]
|
|
42
|
+
describe 'get_async_job test' do
|
|
43
|
+
it 'should work' do
|
|
44
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Mencoro API
|
|
3
|
+
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
|
7
|
+
Contact: support@mencoro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.24.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for Mencoro::MembersApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'MembersApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = Mencoro::MembersApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of MembersApi' do
|
|
30
|
+
it 'should create an instance of MembersApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(Mencoro::MembersApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for change_member_role
|
|
36
|
+
# Change a member role
|
|
37
|
+
# Minimum role: owner. The role of a suspended member cannot be changed, and the last active owner cannot be demoted. Preview it first: the confirmation is bound to the number of active owners, so another owner being suspended in between invalidates it rather than stranding the organization.
|
|
38
|
+
# @param organization_id
|
|
39
|
+
# @param member_id
|
|
40
|
+
# @param x_mencoro_confirmation
|
|
41
|
+
# @param idempotency_key
|
|
42
|
+
# @param change_member_role_request
|
|
43
|
+
# @param [Hash] opts the optional parameters
|
|
44
|
+
# @return [MemberResource]
|
|
45
|
+
describe 'change_member_role test' do
|
|
46
|
+
it 'should work' do
|
|
47
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# unit tests for get_member
|
|
52
|
+
# Get one organization membership
|
|
53
|
+
# Minimum role: owner — the same floor the members listing enforces, because a caller who can page the roster has already seen this record. Returns the facts of one membership: its role, whether it is active or suspended, and when it was joined. It does NOT describe the person behind it: no name, no email address, no phone number and no profile image, so a membership id can never be turned into a contact lookup. The membership is read from PostgreSQL, the same row at the same freshness the listing publishes. A membership belonging to another organization answers 404, exactly as an unknown or malformed id does, so the API never confirms that an inaccessible membership exists; the one 403 is a key without the read capability. The response carries no organizationId — it is the one in the path — and no creation timestamp; joinedAt is the membership fact. No query parameters are accepted.
|
|
54
|
+
# @param organization_id
|
|
55
|
+
# @param member_id The membership id, not the user id. Must belong to the organization in the path.
|
|
56
|
+
# @param [Hash] opts the optional parameters
|
|
57
|
+
# @return [MemberResource]
|
|
58
|
+
describe 'get_member test' do
|
|
59
|
+
it 'should work' do
|
|
60
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# unit tests for list_members
|
|
65
|
+
# List an organization's members
|
|
66
|
+
# Minimum role: owner. The application exposes this roster twice and the two disagree — its member screen shows it to any viewer, while its non-BFF endpoint requires an owner — so the published API takes the stricter of the two and requires an owner. A membership describes the membership, not the person: names and email addresses are never returned here, and there is no search parameter, because both would turn the roster into a contact export. Omitting \"status\" returns active and suspended memberships alike. Sorting by \"role\" is alphabetical on the role name, not by seniority.Send `Accept: text/csv` to receive the same page as a CSV download instead of JSON: same filters, same authorization, same page window and the same maximum of 100 rows — it is this page in another format, not a bulk export, so a whole collection is still read by paging. The CSV carries no `total`, because a table whose every row is a record has nowhere to put one; read it from the JSON representation of the same request. Cells beginning with `=`, `+`, `-` or `@` are prefixed with an apostrophe so a spreadsheet treats them as text rather than running them as formulas.
|
|
67
|
+
# @param organization_id
|
|
68
|
+
# @param [Hash] opts the optional parameters
|
|
69
|
+
# @option opts [Integer] :limit
|
|
70
|
+
# @option opts [Integer] :offset
|
|
71
|
+
# @option opts [String] :status Absent means both states.
|
|
72
|
+
# @option opts [String] :sort_by
|
|
73
|
+
# @option opts [String] :sort_order
|
|
74
|
+
# @return [ListMembers200Response]
|
|
75
|
+
describe 'list_members test' do
|
|
76
|
+
it 'should work' do
|
|
77
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# unit tests for reactivate_member
|
|
82
|
+
# Reactivate a suspended member
|
|
83
|
+
# Minimum role: owner. The member keeps the role they had and regains access on their very next request. A member who is already active cannot be reactivated.
|
|
84
|
+
# @param organization_id
|
|
85
|
+
# @param member_id
|
|
86
|
+
# @param x_mencoro_confirmation
|
|
87
|
+
# @param idempotency_key
|
|
88
|
+
# @param [Hash] opts the optional parameters
|
|
89
|
+
# @return [MemberResource]
|
|
90
|
+
describe 'reactivate_member test' do
|
|
91
|
+
it 'should work' do
|
|
92
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# unit tests for suspend_member
|
|
97
|
+
# Suspend a member
|
|
98
|
+
# Minimum role: owner. The member loses access on their very next request, including through any API key they own that is scoped to this organization. The last active owner cannot be suspended.
|
|
99
|
+
# @param organization_id
|
|
100
|
+
# @param member_id
|
|
101
|
+
# @param x_mencoro_confirmation
|
|
102
|
+
# @param idempotency_key
|
|
103
|
+
# @param [Hash] opts the optional parameters
|
|
104
|
+
# @return [MemberResource]
|
|
105
|
+
describe 'suspend_member test' do
|
|
106
|
+
it 'should work' do
|
|
107
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Mencoro API
|
|
3
|
+
|
|
4
|
+
#Public API for Mencoro customers. Authenticate with an API key: `Authorization: Bearer mencoro_sk_...`.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
|
7
|
+
Contact: support@mencoro.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.24.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
|
|
16
|
+
# Unit tests for Mencoro::OrganizationOperationsApi
|
|
17
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
18
|
+
# Please update as you see appropriate
|
|
19
|
+
describe 'OrganizationOperationsApi' do
|
|
20
|
+
before do
|
|
21
|
+
# run before each test
|
|
22
|
+
@api_instance = Mencoro::OrganizationOperationsApi.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
after do
|
|
26
|
+
# run after each test
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'test an instance of OrganizationOperationsApi' do
|
|
30
|
+
it 'should create an instance of OrganizationOperationsApi' do
|
|
31
|
+
expect(@api_instance).to be_instance_of(Mencoro::OrganizationOperationsApi)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# unit tests for preview_organization_operation
|
|
36
|
+
# Preview an organization operation and obtain a confirmation
|
|
37
|
+
# Organization, member and invitation changes need two calls. This one reports the concrete changes, the side effects, the warnings and the conditions, and returns a confirmation valid for five minutes. Send it back in the X-Mencoro-Confirmation header, together with an Idempotency-Key, on the call that performs the operation. Previewing has no effects of any kind.
|
|
38
|
+
# @param preview_organization_operation_request
|
|
39
|
+
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @return [PreviewOrganizationOperation200Response]
|
|
41
|
+
describe 'preview_organization_operation test' do
|
|
42
|
+
it 'should work' do
|
|
43
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|