Skip to content
Martijn Vermaat edited this page Jan 6, 2023 · 25 revisions

Introduction

Below there is a specification of all steps that are available in this project. See Writing Features for information how to write feature files.

General Steps

Given

an existing {entityname} named {alias} with the following values

This steps finds an existing record. If it exists, then it will get the specified alias. If it's not found, an error is thrown. Use the logicalname of the entity.

a {entityname} named {alias} with the following values

This steps creates a new record of the specified entityname. After creating it, it will get the specified alias. Use the logicalname of the entity.

an {entityname} named {alias} with the following values

Same as step above. Added for grammar purposes.

{alias} has the process stage {stageName}

A record with a specified alias will be moved to a specific stage in the business process flow. The record must be in a state where the specified stage is in the current active path of the business process flow.

that {alias}'s {lookupfield} is named {lookupAlias}

This step will give an alias to a specific record's lookup. In example "Given that TestOpportunity's Price List is named TestPriceList" will give the alias 'TestPriceList' to the price list of the opportunity that has 'TestOpportunity' as alias.

a related {entityName) from {parentAlias} named {childAlias} with the following values

Creates a child record, like creating a record from a associated view. This will take the data mappings into account. It will not use default values.

an related {entityName) from {parentAlias} named {childAlias} with the following values

Same step as above. Added for grammar purposes.

a logged in '{profile}'

Logs in with a specific user and changes the connection from that point on to this user.

a logged in '{profile}' named {alias}

Same as above. Next to that the user gets an alias for future use in the same scenario.

a {entityname} named {alias} is created with the following values

This steps creates a new record of the specified entityname. After creating it, it will get the specified alias.

{entityname}: This is the logicalname of the entity you are looking for.

an {entityname} named {alias} is created with the following values

Same as step above. Added for grammar purposes.

the process stage of {alias} is changed to {stageName}

A record with a specified alias will be moved to a specific stage in the business process flow. The record must be in a state where the specified stage is in the current active path of the business process flow.

{alias} is moved to the next process stage

A record with a specified alias will be moved to the next stage in its business process flow.

{alias} is updated with the following values

A record with a specified alias will be updated with the values specified in the table

all asynchronous processes for {alias} are finished

This step will wait until all system jobs are finished that are related to a specified alias. It will timeout in 30 seconds. It will not wait for for system jobs that are child jobs if they are regarding a different record. In example if the alias is a contact, it will wait until the contact's system jobs are all finished. If the system jobs triggers a asynchronous workflow for its parent account, it will not wait for that.

the status of {alias} is changed to {status}

A record with a specified alias will have its statuscode updated to a specified value. The related statecode will be automatically set.

{alias} is deleted

A record with a specified alias will be deleted and removed from the alias cache.

{aliasToAssign} is assigned to {aliasToAssignTo}

A record with a specified alias (aliasToAssign) will be assigned to a different owner with a specified alias (aliasToAssignTo). The owner must be a user to team.

{subordindateAlias} is fully merged into {targetAlias}

Merge one record into another using the merge command available on Accounts, Contacts, Leads and Cases. All fields that aren't empty will be pushed to the target record. If you want to use a selection of fields, use the step below.

The following fields of {subordindateAlias} are fully merged into {targetAlias}

Merge one record into another using the merge command available on Accounts, Contacts, Leads and Cases. The fields supplied in the table will be pushed to the target. It won't filter out empty fields.

the following records of type {relatedEntityName} are connected to {alias}

Connects a set of records to the specified alias. There records are of entity type 'relatedEntityName'. Supply a table with the header 'Value'

a related {entityName) from {parentAlias} named {childAlias} is created with the following values

Creates a child record, like creating a record from a associated view. This will take the data mappings into account. It will not use default values.

an related {entityName) from {parentAlias} named {childAlias} is created with the following values

Same step as above. Added for grammar purposes.

Then

the process stage of {alias} is {stageName}

Assertion that the business process flow stage of the record with the specified alias is equal to the specified stageName.

{alias} has the following values

Assertion that the record with the specified alias has its values like the specified table. Any fields not in the table will be ignored and will not to be asserted. As the alias specifies the record, any error messages will contain details of the actual value of that field. Can optionally add a condition column. Conditions currently supported are: 'Equal', 'NotEqual', 'NotNull' and 'Regex'.

within X seconds {alias} has the following values

Same as above, but it will keep retrying for X seconds until it succeeds.

a {entityName} exists with the following values

Assertion that exactly 1 records exists that matches the specified table. Use the logicalname of the entity. Can optionally have a condition columns in case you want to test something else than equals. Supported conditions can be found here.

an {entityName} exists with the following values

Same as step above. Added for grammar purposes.

within X seconds a {entityName} exists with the following values

Same as above, but it will keep retrying for X seconds until it succeeds.

within X seconds an {entityName} exists with the following values

Same as step above. Added for grammar purposes.

a {entityName} named {alias} exists with the following values

Assertion that exactly 1 records exists that matches the specified table. Use the logicalname of the entity. Additionally it will add the record to the cache, so that it can be referenced in future steps. This step is useful in case you need to do multiple assertions and the second record has a lookup to the first. Can optionally have a condition columns in case you want to test something else than equals. Supported conditions can be found here.

an {entityName} named {alias} exists with the following values

Same as step above. Added for grammar purposes.

within X seconds a {entityName} named {alias} exists with the following values

Same as above, but it will keep retrying for X seconds until it succeeds.

within X seconds an {entityName} named {alias} exists with the following values

Same as step above. Added for grammar purposes.

{alias} has the following connected records of type {relatedEntityName}

Verifies if a set of records are connected via a NN relationship to the record of the specified alias. There records are of entity type 'relatedEntityName'. Supply a table with the header 'Value'.

{alias}'s {lookupfield} is named {lookupAlias}

This step will give an alias to a specific record's lookup. In example "Given that TestOpportunity's Price List is named TestPriceList" will give the alias 'TestPriceList' to the price list of the opportunity that has 'TestOpportunity' as alias.

no {entityName} exists with the following values

Verifies that no record of that entity matching the supplied criteria exists. Can optionally have a condition columns in case you want to test something else than equals. Supported conditions can be found here.

within X seconds no {entityName} exists with the following values

Same as above, but it will keep retrying for X seconds until it succeeds.

X {entityName} records exist with the following values

Verifies X records exist of the specified entity matching the supplied criteria.

within X seconds Y {entityName} records exist with the following values

Same as above, but it will keep retrying for X seconds until it succeeds.

Lead Steps

When

{alias} is qualified to a

Qualifies a lead. Creates a contact, account and/or opportunity. You can specify the types to create via a table like below.

Account Contact Opportunity
true/false true/false true/false

Opportunity Steps

When

the opportunity {alias} is closed with the following values

Closes the opportunity with the supplied values. In the table you need to at least add the 'Status Reason' field.

Quote Steps

When

the quote {alias} is activated

Activates the quote with the specified alias

{quoteAlias} is converted to a sales order named {orderAlias}

Specified alias (quoteAlias) is converted to a sales order. The resulting salesorder gets the alias 'orderAlias'.

{quoteAlias} is activated and converted to a sales order named {orderAlias}

Combination of the above two steps.

{quoteAlias} is revised and its revised quote is named {orderAlias}

Revises a quote with the specified alias. The new revised quote gets a new alias.

UI Steps

Below steps only work via the User Interface. If attempted to run these steps via the API, then an exception will be thrown

Then

{alias}'s form has the following form state

Checks the state of fields on the form of the specified alias. You can specify the table like below. Both Display and logicalnames are supported for this step. The following state can be checked: Visiblity, Requirement, Locked. You can check multiple states per field and seperate them with a comma. All the possible values are in the table below.

Property State
fieldname required, optional, recommended, locked, unlocked, visible, invisible, not on form

{alias}'s form has the following ribbon state

Checks the state of ribbon items on the form of the specified alias. You can specify the table like below.

Property State
fieldname visible, invisible

{alias} has the following form notifications

Checks if the supplied alias has a set of form notifications. Supply the form notifications like the table below

Message Level
Here you put the message as displayed in the notification. It isn't case sensitive. Information, Warning, Error

the following error message appears: '{ErrorMessage}'

Asserts if the message in the error dialog equals the supplied error message.

Clone this wiki locally