diff --git a/.github/workflows/cross-browser-testing-beta.yml b/.github/workflows/cross-browser-testing-beta.yml new file mode 100644 index 000000000..c4eb7ecd6 --- /dev/null +++ b/.github/workflows/cross-browser-testing-beta.yml @@ -0,0 +1,40 @@ +name: 'BrowserStack Beta Browsers Test' +on: [push, workflow_dispatch] + +jobs: + browserstack-beta-test: + name: 'BrowserStack Beta Browsers Test' + runs-on: ubuntu-latest + steps: + - name: 'BrowserStack Env Setup' + uses: browserstack/github-actions/setup-env@master + with: + username: ${{ secrets.BROWSERSTACK_USERNAME }} + access-key: ${{ secrets.BROWSERSTACK_ACCESS_KEY }} + + - name: 'BrowserStack Local Tunnel Setup' + uses: browserstack/github-actions/setup-local@master + with: + local-testing: start + local-identifier: random + + - name: 'Checkout the repository' + uses: actions/checkout@v3 + + - name: 'Run NPM CI' + run: npm ci + + - name: Run Build IIFE + run: npm run build:iife + + - name: 'Run Build test bundle' + run: npm run build:test-bundle + + - name: 'Run BrowserStack Beta Browsers Test' + run: npm run test:browserstack-beta + + - name: 'BrowserStackLocal Stop' + uses: browserstack/github-actions/setup-local@master + with: + local-testing: stop + diff --git a/package.json b/package.json index 3aea987fc..e082f135a 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,8 @@ "test": "npm run build && npm run build:test-bundle && cross-env DEBUG=false karma start test/karma.config.js", "test:browserstack": "karma start test/cross-browser-testing/browserstack.karma.config.js", "test:browserstack:debug": "cross-env DEBUG=true karma start test/cross-browser-testing/browserstack.karma.config.js", + "test:browserstack-beta": "karma start test/cross-browser-testing/browserstack.karma.beta.config.js", + "test:browserstack-beta:debug": "cross-env DEBUG=true karma start test/cross-browser-testing/browserstack.karma.beta.config.js", "test:debug": "cross-env DEBUG=true karma start test/karma.config.js", "test:stub": "cross-env TESTTYPE=stub ENVIRONMENT=prod rollup --config rollup.test.config.js && karma start test/stub/karma.stub.config.js", "test:integrations": "npm run test:requirejs && npm run test:integrations:cjs && npm run test:integrations:module", diff --git a/src/persistence.js b/src/persistence.js index 256595434..fb0aec710 100644 --- a/src/persistence.js +++ b/src/persistence.js @@ -949,11 +949,7 @@ export default function _Persistence(mpInstance) { }; this.resetPersistence = function() { - removeLocalStorage(StorageNames.localStorageName); - removeLocalStorage(StorageNames.localStorageNameV3); - removeLocalStorage(StorageNames.localStorageNameV4); - removeLocalStorage(mpInstance._Store.storageName); - removeLocalStorage(StorageNames.localStorageProductsV4); + localStorage.clear(); self.expireCookies(StorageNames.cookieName); self.expireCookies(StorageNames.cookieNameV2); diff --git a/test/cross-browser-testing/browserstack.karma.beta.config.js b/test/cross-browser-testing/browserstack.karma.beta.config.js new file mode 100644 index 000000000..9887d171e --- /dev/null +++ b/test/cross-browser-testing/browserstack.karma.beta.config.js @@ -0,0 +1,127 @@ +const { DEBUG } = process.env; + +const files = [ + '../lib/geomock.js', + '../../dist/mparticle.js', + '../test-bundle.js', +]; + +let captureConsole = false; +let browserConsoleLogOptions = {}; + +if (DEBUG === 'true') { + browserConsoleLogOptions = { + level: 'log', + format: '%b %T: %m', + terminal: true, + }; + captureConsole = true; +} else { + browserConsoleLogOptions = { + terminal: false, + }; +} + +const customLaunchers = { + bs_chrome_mac_tahoe_beta: { + base: 'BrowserStack', + browser: 'chrome', + browser_version: 'latest-beta', + os: 'OS X', + os_version: 'Tahoe' // macOS 26 + }, + bs_chrome_mac_sequoia_beta: { + base: 'BrowserStack', + browser: 'chrome', + browser_version: 'latest-beta', + os: 'OS X', + os_version: 'Sequoia' // macOS 15 + }, + bs_chrome_win_beta: { + base: 'BrowserStack', + browser: 'chrome', + browser_version: 'latest', + os: 'Windows', + os_version: '11' + }, + bs_firefox_mac_tahoe_beta: { + base: 'BrowserStack', + browser: 'firefox', + browser_version: 'latest-beta', + os: 'OS X', + os_version: 'Tahoe' // macOS 26 + }, + bs_firefox_mac_sequoia_beta: { + base: 'BrowserStack', + browser: 'firefox', + browser_version: 'latest-beta', + os: 'OS X', + os_version: 'Sequoia' // macOS 15 + }, + bs_firefox_mac_catalina_beta: { + base: 'BrowserStack', + browser: 'firefox', + browser_version: 'latest-beta', + os: 'OS X', + os_version: 'Catalina' // macOS 10.15 + }, + bs_firefox_win_latest: { + base: 'BrowserStack', + browser: 'firefox', + browser_version: 'latest', + os: 'Windows', + os_version: '11', + }, + bs_edge_mac_tahoe_beta: { + base: 'BrowserStack', + browser: 'edge', + browser_version: 'latest-beta', + os: 'OS X', + os_version: 'Tahoe' // macOS 26 + }, + bs_edge_mac_sequoia_beta: { + base: 'BrowserStack', + browser: 'edge', + browser_version: 'latest-beta', + os: 'OS X', + os_version: 'Sequoia' // macOS 15 + }, + bs_edge_win_beta: { + base: 'BrowserStack', + browser: 'edge', + browser_version: 'latest-beta', + os: 'Windows', + os_version: '11' + }, +}; + +module.exports = function(config) { + config.set({ + browserStack: { + username: process.env.BS_USERNAME, + accessKey: process.env.BS_ACCESS_KEY + }, + autoWatch: false, + customLaunchers, + browsers: Object.keys(customLaunchers), + frameworks: ['mocha', 'should'], + files, + reporters: ['progress', 'junit'], + colors: true, + singleRun: true, + debug: true, + logLevel: config.LOG_INFO, + browserConsoleLogOptions, + client: { + captureConsole, + }, + junitReporter: { + outputDir: 'reports/', + outputFile: 'test-karma-beta.xml', + }, + browserDisconnectTimeout: 50000, + browserDisconnectTolerance: 5, + concurrency: 5, + }); +}; +