Skip to content

Commit

Permalink
main (#5)
Browse files Browse the repository at this point in the history
* Publish

 - @segment/actions-cli-internal@3.123.2
 - @segment/actions-cli@3.123.2
 - @segment/action-destinations@3.127.2

* Subscribe to more events (Redo without required type) (segmentio#986)

* Add subscriptions to track event

* Generate types and new snapshot

* Add test

* Improve labels and descriptions

* Generated types

* Change description

* Generate types

* Remove required

* Generate types

* Update Ripe web destination (segmentio#968)

* Update Ripe web destination

- Add new endpoint setting for testing purposes
- Remove alias call
- Update misleading anonymousId descriptions

* Update erroneous default paths

* Set anonymousId in identify call

* Heap 34916 - add session_id + update segment library for tracking purposes (segmentio#787)

* Fix events payload

* Use the single event not the bulk

* Fix tests

* Fix should not override

* remove console log and update SEGMENT_LIB var

* update constant value

* update browser tests as well

* Adding Group support for customerio -Rename identifier field names (segmentio#973)

* Initial commit for objects

* Added Test cases

* Adding Tests validation for the payload

* committing generate type file

* Adding group support from identify

* Fixing conflicts

* Adding traits to attributes property for createUpdateObject action

* renaming id and type_id to object_id and object_type_id

Co-authored-by: kishoredevarasettyn <kishore.devarasetty@customer.io>

* SalesWings (Actions) Destination (segmentio#945)

* Generated integration from scaffold

* Fix action name

* Implement SalesWings destination actions

* Send user agent, rearrange fields

* Bugfixes

* Remove debug logging

* First tests

* Auth tests & track event tests

* Page event tests

* Identify event tests

* Screen event tests

* Event batch test

* More event batch tests

* Change API key description

* Commit generated types

* Minor cleanup

* Fix square brackets in field description UI

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Add mandatory `.` to description

Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>

* Hardcoding timestamps for snapshot tests

* Extract email from properties of Track event

* Add action description

* Add default subscription to action

* Add destination present

* Merge URL fields

* Dedicated actions per event type

* Cleanup

* Update field descriptions

* Update geenrated types

Co-authored-by: Yevgeny Terov <73266004+yevsw@users.noreply.github.com>
Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>
Co-authored-by: Yevgeny Terov <yevgeny@saleswingsapp.com>

* Changing default subscription to group for group call (segmentio#995)

* Initial commit for objects

* Added Test cases

* Adding Tests validation for the payload

* committing generate type file

* Adding group support from identify

* Fixing conflicts

* Adding traits to attributes property for createUpdateObject action

* setting default subscription as group for createUpdateObject and addressing other review comments

* correcting merge overrides

Co-authored-by: kishoredevarasettyn <kishore.devarasetty@customer.io>

* Add anonymous id as a user property (segmentio#981)

* Update setting description in Google Ads Conversions (segmentio#983)

* HGI-237 | Updated Description for Braze Cohorts Fields (segmentio#992)

* udpated description for braze cohorts

* updated description for braze cohorts

* updated description in mapping fields

* updated description

* updated event_properties to hidden

* made event_properties unhidden

Co-authored-by: Gaurav Kochar <gaurav.kochar@segment.com>

* Increase CI timeout to 15 minutes and 10 minutes respectively (segmentio#985)

* Increase CI timeout to 15 minutes

* Bump browser tests to 10 minutes

Co-authored-by: Nolan Chan <nolan.chan@segment.com>

* Pipedrive actions PE-20 (segmentio#996)

* fix for pipedrive pe-20 issue

* removing default visible_to

* Register Saleswing Action (segmentio#999)

Co-authored-by: Nolan Chan <nolan.chan@segment.com>

* Publish

 - @segment/browser-destinations@3.72.0
 - @segment/actions-cli-internal@3.124.0
 - @segment/actions-cli@3.124.0
 - @segment/action-destinations@3.128.0

* ACT-362 Brackets Support (segmentio#993)

* add support for brackets inside js keys in get method

* add double quotes

* explanatory text + new link

* safari support

* remove invalid bracket test since it is now supported

* use class based regex to avoid parseError

* actually convert the regex correctly

* cleanup

* split tests by functionality

* Refactor .get test (segmentio#1000)

* Heap Fix for empty event name (segmentio#1004)

* fix for pe-52

* fixing breaking tests

* Publish

 - @segment/actions-shared@1.32.0
 - @segment/browser-destinations@3.73.0
 - @segment/actions-cli-internal@3.125.0
 - @segment/actions-cli@3.125.0
 - @segment/actions-core@3.50.0
 - @segment/action-destinations@3.129.0

* fix scaffolding for oauth (segmentio#1008)

* [CHANNELS-329] Add WhatsApp support for Twilio Engage (segmentio#987)

* feat: added whatsapp support

* fix: added missing dependencies

* refactor: minor cleanup

* fix: moved dependency to package level

* fix: uri encoding for get traits

* fix: using same auth scheme for sms & whatsapp

whatsApp thankfully allows using apiKeySid & apiSecret instead of accountSid & authToken

* fix: reverted changed package version

* feat: allow bypassing contentVariables reconciliation

* Publish

 - @segment/actions-cli-internal@3.126.0
 - @segment/actions-cli@3.126.0
 - @segment/action-destinations@3.130.0

* Add browser destination tests with saucelabs  (segmentio#994)

* Node 18 Upgrade (segmentio#991)

* packages

* ci + nvm

* lock for 18

* fix webpack hashing issue

* node types to 18

* Update node version for browser-tests and snyk

* Fix tests

* Try to fix browser tests

* Fix pipedrive unit tests

* Fix domain in snapshot tests

* Fix yarn subscriptions

* Update README

---------

Co-authored-by: Dan Lasky <dan.lasky@segment.com>

* Use node18 for browser tests destinations (segmentio#1014)

* Contribution pe 53 (segmentio#1007)

* updating contributing guidelines

* adding extra instructions for post deployment changes

* spelling corrections

* spelling corrections

* Update CONTRIBUTING.md

Co-authored-by: SyedWasiHaider <SyedWasiHaider@users.noreply.github.com>

* Update CONTRIBUTING.md

Co-authored-by: SyedWasiHaider <SyedWasiHaider@users.noreply.github.com>

---------

Co-authored-by: SyedWasiHaider <SyedWasiHaider@users.noreply.github.com>

* Qualtrics upsert transaction (segmentio#963)

* adding upsert contact transacion destination

* fixing snapshots

* Updating perform function for upsertTransaction

* Adding dynamic fields for directoryId. Updating field descriptions. Update upsertTransaction defaultSubscription

* updating types

* Update qualtrics destination name and descriptons on actions

---------

Co-authored-by: Carl Lee <carlmlee@qualtrics.com>

* fixing a couple of issues with new Ironclad destination (segmentio#1002)

* fixing a couple of issues with new Ironclad destination

* adding updated generated types

* fixing broken test

* [salesforce] - Verify the `instanceUrl` is a valid Salesforce domain (segmentio#997)

* Regex and WIP unit tests

* Unit tests working

* Updates regex and unit tests

* Updates other unit tests

* Saving package.json

* Adds a couple more unit tests

* Removes package.json from commits

* Removes package.json from commits

* Imports request client using absolute path instead of relative path

* Enforce https

* Publish

 - @segment/actions-shared@1.33.0
 - @segment/browser-destinations-integration-tests@0.1.0
 - @segment/browser-destinations@3.74.0
 - @segment/actions-cli-internal@3.127.0
 - @segment/actions-cli@3.127.0
 - @segment/actions-core@3.51.0
 - @segment/action-destinations@3.131.0
 - @segment/destination-subscriptions@3.15.0

* Fix CommandBar browser destination initialization when CommandBar has already been loaded through other means (segmentio#1009)

Co-authored-by: Thomas Kainrad <thomas@tkainrad.dev>

* remove flow that attempts to create a JIRA ticket (segmentio#1021)

* Twilio Studio as a Segment Action Destination (segmentio#1023)

* Twilio Studio as a Segment Action Destination

* Replaced phone number with userid in the cache key

* Addressed review comments

* DOTORG-839: Blackbaud Raiser's Edge NXT Destination (segmentio#998)

* DOTORG-839: Create or Update Individual Constituent Action (#1)

* DOTORG-839 Added OAuth2 settings for Blackbaud (#2)

* Move bbApiSubscriptionKey to settings

* Only aggregate integrationErrors

* Update Online Presence label

* Update directory structure

* Add types

* Abstract API calls

* Add dateStringToFuzzyDate

* Add types

* Don't retry 401s

* Don't catch errors on constituent search or creation

* Concatenate integrationErrors

* Add throwHttpErrors

* Set default for lookup_id to userId

* Pass constituentId to updateConstituent

* Remove try/catch

* Use camelCase traits

* Add filterObjectListByMatchFields

* Check if primary property is defined

* DOTORG-839 Added authentication test (#3)

* Don't match on country

* Use datetime type

* Strip non-numeric characters from phone when matching

* Don't match on undefined boolean fields

* Update generated-types.ts

* Fix linting errors

* Move fixtures out of tests directory

* Update constituentData

* Update default lookup_id mapping

* Update testAuthentication

* Remove UNEXPECTED_RECORD_COUNT error

* Update tests

---------

Co-authored-by: twilio-hwong <91703194+twilio-hwong@users.noreply.github.com>

---------

Co-authored-by: Nick Aguilar <nicholas.aguilar@segment.com>
Co-authored-by: Stella Chung <schung507@gmail.com>
Co-authored-by: Simon <simpajj@users.noreply.github.com>
Co-authored-by: A Murphy <amanda.murphy@heapanalytics.com>
Co-authored-by: kishoredevarasettyn <97026912+kishoredevarasettyn@users.noreply.github.com>
Co-authored-by: kishoredevarasettyn <kishore.devarasetty@customer.io>
Co-authored-by: Denis Egorushkin <98813888+denis-egorushkin-sw@users.noreply.github.com>
Co-authored-by: Yevgeny Terov <73266004+yevsw@users.noreply.github.com>
Co-authored-by: Marín Alcaraz <alcara_m@protonmail.com>
Co-authored-by: Yevgeny Terov <yevgeny@saleswingsapp.com>
Co-authored-by: maryamsharif <99763167+maryamsharif@users.noreply.github.com>
Co-authored-by: Innovative-GauravKochar <117165746+Innovative-GauravKochar@users.noreply.github.com>
Co-authored-by: Gaurav Kochar <gaurav.kochar@segment.com>
Co-authored-by: Nolan Chan <nolan.chan@segment.com>
Co-authored-by: Joe Ayoub <45374896+joe-ayoub-segment@users.noreply.github.com>
Co-authored-by: Nolan Chan <nolanchan@berkeley.edu>
Co-authored-by: Dan <dlasky@users.noreply.github.com>
Co-authored-by: Seth Silesky <5115498+silesky@users.noreply.github.com>
Co-authored-by: rhall-twilio <103517471+rhall-twilio@users.noreply.github.com>
Co-authored-by: alfrimpong <119889384+alfrimpong@users.noreply.github.com>
Co-authored-by: SyedWasiHaider <SyedWasiHaider@users.noreply.github.com>
Co-authored-by: Dan Lasky <dan.lasky@segment.com>
Co-authored-by: drakauskas <119876674+drakauskas@users.noreply.github.com>
Co-authored-by: Carl Lee <carlmlee@qualtrics.com>
Co-authored-by: Wasi Haider <whaider@twilio.com>
Co-authored-by: Thomas Kainrad <7394822+tkainrad@users.noreply.github.com>
Co-authored-by: Thomas Kainrad <thomas@tkainrad.dev>
Co-authored-by: aradhakrishnan-twilio <116877054+aradhakrishnan-twilio@users.noreply.github.com>
Co-authored-by: twilio-hwong <91703194+twilio-hwong@users.noreply.github.com>
  • Loading branch information
1 parent f5b59ee commit 191529b
Show file tree
Hide file tree
Showing 192 changed files with 9,969 additions and 827 deletions.
6 changes: 6 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,12 @@ module.exports = {
rules: {
'@typescript-eslint/no-var-requires': 'off'
}
},
{
files: ['packages/browser-destinations-integration-tests/**/*.ts'],
rules: {
'@typescript-eslint/no-unsafe-call': 'off'
}
}
]
}
63 changes: 56 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ jobs:
test-and-build:
runs-on: ubuntu-20.04

timeout-minutes: 10
timeout-minutes: 15

strategy:
matrix:
node-version: [14.x]
node-version: [18.x]

steps:
- uses: actions/checkout@v2
Expand Down Expand Up @@ -65,14 +65,63 @@ jobs:
yarn subscriptions size
fi
browser-tests:
browser-tests-destination:
env:
SAUCE_USERNAME: ${{secrets.SAUCE_USERNAME}}
SAUCE_ACCESS_KEY: ${{secrets.SAUCE_ACCESS_KEY}}

runs-on: ubuntu-20.04

timeout-minutes: 5
timeout-minutes: 20

strategy:
matrix:
node-version: [18.x]

steps:
- uses: actions/checkout@master

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
registry-url: 'https://registry.npmjs.org'

- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"

- uses: actions/cache@v2
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install Dependencies
run: yarn install --frozen-lockfile
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Build
run: NODE_ENV=production yarn lerna run build --scope=@segment/browser-destinations --include-dependencies --stream

- name: Run Saucelabs Tests
working-directory: packages/browser-destinations-integration-tests
shell: bash
run: |
yarn start-destination-server &
yarn test:sauce
browser-tests-core:
runs-on: ubuntu-20.04

timeout-minutes: 10

strategy:
matrix:
node-version: [14.x]
node-version: [18.x]

steps:
- uses: actions/checkout@v2
Expand Down Expand Up @@ -107,7 +156,7 @@ jobs:
run: npx playwright install-deps

- name: Build
run: NODE_ENV=production yarn build
run: NODE_ENV=production yarn lerna run build --scope=@segment/actions-core --include-dependencies --stream

- name: Browser Test
run: yarn test-browser
Expand All @@ -119,7 +168,7 @@ jobs:

strategy:
matrix:
node-version: [14.x]
node-version: [18.x]

steps:
- uses: actions/checkout@v2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ext.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:

strategy:
matrix:
node-version: [14.x]
node-version: [18.x]

steps:
- uses: actions/checkout@v2
Expand Down
32 changes: 0 additions & 32 deletions .github/workflows/pr2jira.yml

This file was deleted.

5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,7 @@ package-lock.json
.env
# JetBrains byproduct
.idea
coverage
coverage

# playwright
playwright-report
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
14.17
18.12.1
46 changes: 35 additions & 11 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Before continuing, please make sure to read our [Code of Conduct](./CODE_OF_COND
6. [Provide catalog metadata](#provide-integration-metadata-for-the-catalog)
7. [Release to Private Beta](#release-to-private-beta-for-customer-testing)
8. [Release to Public](#release-to-public-in-the-segment-catalog)
9. [Submitting subsequent changes](#submitting-changes-after-your-integration-is-already-live)

## Become a Segment Partner

Expand Down Expand Up @@ -62,27 +63,28 @@ Before continuing, please make sure to read our [Code of Conduct](./CODE_OF_COND

2. Your PR is merged!
- Congratulations! Once your PR is merged by a Segment developer, they will deploy your changes and notify you when it’s publicly available. If the destination is in private beta, our folks at Segment will provide a link to access your destination. Once the destination is ready for general availability and has been approved, the destination will be visible from the catalog itself.
- *Note*: we currently do weekly deploys on Wednesdays for all non-emergency changes. Changes should be approved and merged by Tuesday EOD to make the Wednesday release. Thank you!
- _Note_: we currently do weekly deploys on Wednesdays for all non-emergency changes. Changes should be approved and merged by Tuesday EOD to make the Wednesday release. Thank you!

## Write documentation

Documentation ensures users of your destination can enable and configure the destination, and understand how it interacts with your platform.

1. Write your integration’s documentation. Segment provides two templates: [doc-template-new.md](./docs/doc-template-new.md) for new destinations, and [doc-template-update.md](./docs/doc-template-update.md) for updates to existing destinations.
1. Write your integration’s documentation. Segment provides two templates: [doc-template-new.md](./docs/doc-template-new.md) for new destinations, and [doc-template-update.md](./docs/doc-template-update.md) for updates to existing destinations.

These templates contain content that automatically pulls in information. Do not edit this content.
- The table at the top is the yaml front matter, and it is not rendered in the final documentation.
- The snippet `{% include content/plan-grid.md name="actions" %}` indicates which Segment account tiers have access to Destination Actions; all account tiers have access.
- The snippet `{% include content/ajs-upgrade.md %}` is a note to encourage customers to upgrade to Analytics.js 2.0.
- The snippet `{% include components/actions-fields.html %}` will automatically populate information about your destination’s Settings, Mappings, Actions, and Action fields, using Segment's Public API. This information will be populated as soon as your destination reaches the Public Beta phase. This means you don't need to include any of this information in your documentation.

- The table at the top is the yaml front matter, and it is not rendered in the final documentation.
- The snippet `{% include content/plan-grid.md name="actions" %}` indicates which Segment account tiers have access to Destination Actions; all account tiers have access.
- The snippet `{% include content/ajs-upgrade.md %}` is a note to encourage customers to upgrade to Analytics.js 2.0.
- The snippet `{% include components/actions-fields.html %}` will automatically populate information about your destination’s Settings, Mappings, Actions, and Action fields, using Segment's Public API. This information will be populated as soon as your destination reaches the Public Beta phase. This means you don't need to include any of this information in your documentation.

These templates contain sections that you should edit to explain the following:

- The purpose of the destination
- Benefits / features of the destination
- Steps to add and configure the destination within Segment (replace the destination name with your destination)
- Breaking changes compared to a classic version of the destination (if applicable)
- Migration steps (if applicable)
- The purpose of the destination
- Benefits / features of the destination
- Steps to add and configure the destination within Segment (replace the destination name with your destination)
- Breaking changes compared to a classic version of the destination (if applicable)
- Migration steps (if applicable)

To help you write your documentation, see examples of documentation for other destinations: [Slack (Actions) Destination](https://segment.com/docs/connections/destinations/catalog/actions-slack/), [TikTok Conversions Destination](https://segment.com/docs/connections/destinations/catalog/tiktok-conversions/).

Expand Down Expand Up @@ -122,3 +124,25 @@ Please find the below info for _Name of integration_ Catalog entry.
2. Write a blog post for your company’s blog, write a [recipe](https://segment.com/recipes/) to help customers solve a specific problem using your Integration, and/or work with our Marketing team to be featured in the Segment blog.

3. Maintain your integration. Fix bugs, update it if your APIs change, add functionality as requested by customers.

## Submitting changes after your Integration is already live

After your Integration is live and in use by customers you will still be able to make changes to your Integration code. However, an extra level of governance and oversight is required in order to avoid causing issues for customers who are already using your Integration.

Please observe the dos and dont's listed below:

**Please do not:**

1. Do not add a **required** field to an Integration which is already in use by customers. Doing so will prevent existing instances of your Integration from working, and will lead to an incident.

2. Do not change your perform() or batchPerform() functions so that they now depend on a value from a field in order for the outbound API call to be successful. Doing so may cause pre-existing Integrations to fail.

3. Do not raise a PR containing changes for more than 1 Integration. For example if you need to make changes to a Cloud Mode and Device Mode Integration you should raise separate PRs.

4. Do not change the name or slug of your Integration after the Integration has been deployed. If you do want to change the name of your Integration please email partner-support@segment.com.

5. Do not delete an Action from an Integration. This capability is not yet supported by our Framework. If you do want to do this please email partner-support@segment.com.

**Please do the following:**

1. If adding a new field or amending the configuration of an existing field, please attach a video to the PR of you testing the change using the [Action Tester](./docs/testing.md). Try to use realistic Segment API payloads as inputs, and if possible show how the payloads are reflected in your Destination platform.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ This is a monorepo with multiple packages leveraging [`lerna`](https://github.co
You'll need to have some tools installed locally to build and test action destinations.

- Yarn 1.x
- Node 14.17 (latest LTS, we recommand using [`nvm`](https://github.com/nvm-sh/nvm) for managing Node versions)
- Node 18.12 (latest LTS, we recommand using [`nvm`](https://github.com/nvm-sh/nvm) for managing Node versions)

If you are a Segment employee you can directly `git clone` the repository locally. Otherwise you'll want to fork this repository for your organization to submit Pull Requests against the main Segment repository. Once you've got a fork, you can `git clone` that locally.

Expand All @@ -62,7 +62,7 @@ cd action-destinations
npm login
yarn login

# Requires node 14.17, optionally: nvm use 14.17
# Requires node 18.12.1, optionally: nvm use 18.12.1
yarn --ignore-optional
yarn bootstrap
yarn build
Expand Down
5 changes: 5 additions & 0 deletions docs/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
- [Examples](#examples)
- [Snapshot Testing](#snapshot-testing)
- [Code Coverage](#code-coverage)
- [Post Deployment Change Testing](#post-deployment-change-testing)

## Actions Tester

Expand Down Expand Up @@ -195,3 +196,7 @@ yarn jest --testPathPattern='./packages/destination-actions/src/destinations/<DE
## Code Coverage
Code coverage is automatically collected upon completion of `yarn test`. Results may be inspected by examining the HTML report found at `coverage/lcov-report/index.html`, or directly in your IDE if _lcov_ is supported.
## Post Deployment Change Testing
An extra level of governance and oversight is required when making changes to an Integration which is already in use by customers. See [Submitting subsequent changes](../contributing.md) instructions for additional details.
9 changes: 6 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,20 @@
"types": "./bin/run generate:types",
"validate": "./bin/run validate",
"lint": "eslint '**/*.ts' --cache",
"subscriptions": "yarn workspace @segment/destination-subscriptions",
"subscriptions": "NODE_OPTIONS=--openssl-legacy-provider yarn workspace @segment/destination-subscriptions",
"test": "lerna run test --stream",
"test-partners": "lerna run test --stream --ignore @segment/actions-core --ignore @segment/actions-cli --ignore @segment/ajv-human-errors",
"test-browser": "lerna run build:karma --stream && karma start",
"test-browser": "lerna run build:karma --stream && NODE_OPTIONS=--openssl-legacy-provider karma start",
"typecheck": "lerna run typecheck --stream",
"alpha": "lerna publish --canary --preid $(git branch --show-current) --include-merged-tags",
"prepare": "husky install"
"prepare": "husky install",
"clean": "sh scripts/clean.sh"
},
"devDependencies": {
"@peculiar/webcrypto": "^1.2.3",
"@types/chance": "^1.1.3",
"@types/cors": "^2.8.12",
"@types/express": "^4.17.16",
"@types/jest": "^27.0.0",
"@types/ws": "^8.5.1",
"@typescript-eslint/eslint-plugin": "^4.14.0",
Expand All @@ -42,6 +44,7 @@
"eslint-config-prettier": "^6.15.0",
"eslint-plugin-jest": "^25.2.2",
"eslint-plugin-lodash": "^7.3.0",
"express": "^4.18.2",
"husky": "^7.0.0",
"jest": "^27.3.1",
"jest-browser-globals": "^25.1.0-beta",
Expand Down
6 changes: 3 additions & 3 deletions packages/actions-shared/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@segment/actions-shared",
"description": "Shared destination action methods and definitions.",
"version": "1.31.0",
"version": "1.33.0",
"repository": {
"type": "git",
"url": "https://github.com/segmentio/action-destinations",
Expand All @@ -14,7 +14,7 @@
"package.json"
],
"engines": {
"node": "^14.16"
"node": "^18.12"
},
"engineStrict": true,
"license": "MIT",
Expand All @@ -37,7 +37,7 @@
},
"dependencies": {
"@amplitude/ua-parser-js": "^0.7.25",
"@segment/actions-core": "^3.49.0",
"@segment/actions-core": "^3.51.0",
"cheerio": "^1.0.0-rc.10",
"dayjs": "^1.10.7",
"escape-goat": "^3",
Expand Down
2 changes: 1 addition & 1 deletion packages/actions-shared/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@
"@segment/destination-subscriptions": ["../destination-subscriptions/src"]
}
},
"exclude": [],
"exclude": ["dist"],
"include": ["src", "test"]
}
1 change: 1 addition & 0 deletions packages/browser-destinations-integration-tests/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
driver-logs
33 changes: 33 additions & 0 deletions packages/browser-destinations-integration-tests/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Browser Destinations Integration Tests

These are for tests that target the final, webpacked output of browser-destinations, and can ideally be run in multiple browsers via a device farm like Sauce Labs.

These tests are meant to run in real browsers and issues that might be missed in the package unit tests, which run in a node environment.

Browser targets:

- latest verison of chrome
- latest version of safari
- latest version of firefox
- iOS 13 (older version of safari)

## Running tests

1. Build dependencies and start local server

```sh
yarn browser-destinations:build &&
yarn start-destination-server
```

2. Run tests locally

```sh
yarn run test:local
```

3. Run tests on Sauce Labs

```sh
SAUCE_USERNAME=??? SAUCE_ACCESS_KEY=??? yarn run test:sauce
```
Loading

0 comments on commit 191529b

Please sign in to comment.