Skip to content

Commit

Permalink
feat(glance-tag): tag pages with cobrowse script for glance EB-774
Browse files Browse the repository at this point in the history
  • Loading branch information
Orion Wolf-Hubbard committed Nov 20, 2024
1 parent 5897344 commit 693a255
Show file tree
Hide file tree
Showing 11 changed files with 161 additions and 0 deletions.
Empty file.
21 changes: 21 additions & 0 deletions packages/glance-tag/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# @availity/glance-tag

> adds a script to allow glance to view the page for share my screen support
## Installation

### NPM

```bash
npm install @availity/glance-tag
```

### Yarn

```bash
yarn add @availity/glance-tag
```

## Usage

> All you have to do is include this as a dependency and import it into the root of your web application.
7 changes: 7 additions & 0 deletions packages/glance-tag/jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
const global = require('../../jest.config');

module.exports = {
...global,
displayName: 'glance-tag',
coverageDirectory: '../../coverage/glance-tag',
};
18 changes: 18 additions & 0 deletions packages/glance-tag/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "@availity/glance-tag",
"version": "0.0.0",
"description": "adds a script to allow glance to view the page for share my screen support",
"main": "src/index.js",
"keywords": [],
"author": "Orion Wolf-Hubbard <[email protected]>",
"engines": {
"node": "^18.0.0 || ^20.0.0"
},
"dependencies": {
"@availity/env-var": "workspace:*"
},
"license": "MIT",
"publishConfig": {
"access": "public"
}
}
39 changes: 39 additions & 0 deletions packages/glance-tag/project.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"name": "@availity/glance-tag",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"projectType": "library",
"targets": {
"test": {
"executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/resolve-url"],
"options": {
"jestConfig": "packages/glance-tag/jest.config.js"
}
},
"version": {
"executor": "@jscutlery/semver:version",
"options": {
"preset": "angular",
"commitMessageFormat": "chore(glance-tag): release version ${version} [skip ci]",
"tagPrefix": "{projectName}@",
"baseBranch": "master",
"trackDeps": true
}
},
"lint": {
"executor": "@nx/eslint:lint",
"options": {
"eslintConfig": ".eslintrc.yaml",
"silent": false,
"fix": false,
"cache": true,
"cacheLocation": "./node_modules/.cache/glance-tag/.eslintcache",
"maxWarnings": -1,
"quiet": false,
"noEslintrc": false,
"hasTypeAwareRules": true,
"cacheStrategy": "metadata"
}
}
}
}
1 change: 1 addition & 0 deletions packages/glance-tag/src/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/* eslint-disable unicorn/no-empty-file */
22 changes: 22 additions & 0 deletions packages/glance-tag/src/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/* eslint-disable unicorn/prefer-dom-node-dataset */
import envVar from '@availity/env-var'

export const addGlanceScript = () => {
const script = document.createElement('script')
const isProd = envVar({ prod: true })
const site = isProd ? 'production' : 'staging'

script.setAttribute('id', 'glance-cobrowse')
script.setAttribute('charset', 'glance-cobrowse')
script.setAttribute('type', 'text/javascript')
script.setAttribute('src', `https://www.glancecdn.net/cobrowse/CobrowseJS.ashx?group=21510&site=${site}`)
script.setAttribute('data-groupid', '21510')
script.setAttribute('data-site', site)
script.setAttribute('data-ws', 'www.glance.net')
script.setAttribute('data-presence', 'on')
script.setAttribute('data-cookietype', 'normal')

document.head.append(script)
}

window.addEventListener('load', addGlanceScript);
30 changes: 30 additions & 0 deletions packages/glance-tag/src/tests/index.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
const envVar = require('@availity/env-var')
const { addGlanceScript } = require('../index')

jest.mock('@availity/env-var/src', () => jest.fn())

describe('glance-tag', () => {
beforeEach(() => {
document.head.innerHTML = '';
});

test('load event should add glance script just from importing package', () => {
window.dispatchEvent(new Event('load'))
const scriptTag = document.getElementById('glance-cobrowse')
expect(scriptTag).not.toBeNull()
})

test('glance script should have production site in production', () => {
envVar.mockReturnValue(true)
addGlanceScript()
const scriptTag = document.getElementById('glance-cobrowse')
expect(scriptTag.src).toBe('https://www.glancecdn.net/cobrowse/CobrowseJS.ashx?group=21510&site=production')
})

test('glance script should have staging site when not in production', () => {
envVar.mockReturnValue(undefined)
addGlanceScript()
const scriptTag = document.getElementById('glance-cobrowse')
expect(scriptTag.src).toBe('https://www.glancecdn.net/cobrowse/CobrowseJS.ashx?group=21510&site=staging')
})
})
5 changes: 5 additions & 0 deletions packages/glance-tag/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"extends": "../../tsconfig.json",
"include": ["."],
"exclude": ["dist", "build", "node_modules"]
}
10 changes: 10 additions & 0 deletions packages/glance-tag/tsconfig.spec.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "../../dist/out-tsc",
"module": "commonjs",
"types": ["jest", "node"],
"allowJs": true
},
"include": ["**/*.test.ts", "**/*.spec.ts", "**/*.d.ts"]
}
8 changes: 8 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,14 @@ __metadata:
languageName: unknown
linkType: soft

"@availity/glance-tag@workspace:packages/glance-tag":
version: 0.0.0-use.local
resolution: "@availity/glance-tag@workspace:packages/glance-tag"
dependencies:
"@availity/env-var": "workspace:*"
languageName: unknown
linkType: soft

"@availity/message-core@workspace:packages/message-core":
version: 0.0.0-use.local
resolution: "@availity/message-core@workspace:packages/message-core"
Expand Down

0 comments on commit 693a255

Please sign in to comment.