Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 12 additions & 8 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,16 @@ module.exports = {
es2020: true,
'jest/globals': true,
node: true,
jasmine: true,
},
globals: {
instantsearch: true,
instantMeiliSearch: true,
page: true, // for jest/puppeteer tests in examples/express
browser: true, // for jest/puppeteer tests in examples/express
context: true, // for jest/puppeteer tests in examples/express
jestPuppeteer: true, // for jest/puppeteer tests in examples/express
page: true, // for jest/puppeteer tests in tests/env/express
browser: true, // for jest/puppeteer tests in tests/env/express
context: true, // for jest/puppeteer tests in tests/env/express
jestPuppeteer: true, // for jest/puppeteer tests in tests/env/express
jasmine: true, // for angular e2e tests in playground/angular
},
extends: [
'standard',
Expand Down Expand Up @@ -100,12 +102,14 @@ module.exports = {
browser: true,
es2020: true,
'jest/globals': true,
jasmine: true,
},
globals: {
page: true, // for jest/puppeteer tests in examples/express
browser: true, // for jest/puppeteer tests in examples/express
context: true, // for jest/puppeteer tests in examples/express
jestPuppeteer: true, // for jest/puppeteer tests in examples/express
page: true, // for jest/puppeteer tests in tests/env/express
browser: true, // for jest/puppeteer tests in tests/env/express
context: true, // for jest/puppeteer tests in tests/env/express
jestPuppeteer: true, // for jest/puppeteer tests in tests/env/express
jasmine: true, // for angular e2e tests in playground/angular
},
extends: [
'standard',
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ jobs:
run: yarn build
- name: Run env tests
run: yarn test:env
- name: Run env tests
run: yarn test:env


style:
Expand Down
10 changes: 8 additions & 2 deletions jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,19 @@ module.exports = {
// We are using jest-environment-jsdom 25 until we stop supporting node 10
// jest-environment-jsdom 25 uses jsdom 15 which still supports node 10
testEnvironment: 'jest-environment-jsdom',
testPathIgnorePatterns: ['<rootDir>/tests/env/express'],
testPathIgnorePatterns: [
'<rootDir>/tests/env/express',
'<rootDir>/playgrounds/angular',
],
},
{
preset: 'ts-jest',
displayName: 'node',
testEnvironment: 'node',
testPathIgnorePatterns: ['<rootDir>/tests/env/express'],
testPathIgnorePatterns: [
'<rootDir>/tests/env/express',
'<rootDir>/playgrounds/angular',
],
},
],
}
8 changes: 6 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,25 @@
"scripts": {
"cleanup": "shx rm -rf dist/",
"test": "yarn build && jest",
"test:all": "yarn test && yarn test:env && yarn test:playgrounds",
"test:all": "yarn test && yarn test:env && yarn test:playgrounds && yarn test:e2e",
"test:env": "yarn build && yarn test:env:browser && yarn test:env:nodejs && yarn test:env:esm && yarn test:env:ts",
"test:env:browser": "yarn --cwd tests/env/express && yarn --cwd tests/env/express test",
"test:env:nodejs": "node tests/env/node/index.js",
"test:env:esm": "yarn --cwd tests/env/esm && yarn --cwd tests/env/esm start",
"test:env:ts": "yarn --cwd tests/env/typescript-node && yarn --cwd tests/env/typescript-node start",
"test:playgrounds": "yarn build:playground:vue && yarn build:playground:react && yarn build:playground:javascript && yarn build:playground:html",
"test:playgrounds": "yarn build:playground:vue && yarn build:playground:react && yarn build:playground:javascript && yarn build:playground:html && yarn build:playground:angular",
"build:playground:vue": "yarn --cwd ./playgrounds/vue && yarn --cwd ./playgrounds/vue build",
"build:playground:react": "yarn --cwd ./playgrounds/react && yarn --cwd ./playgrounds/react build",
"build:playground:javascript": "yarn --cwd ./playgrounds/javascript && yarn --cwd ./playgrounds/javascript build",
"build:playground:html": "yarn --cwd ./playgrounds/html && yarn --cwd ./playgrounds/html build",
"build:playground:angular": "yarn --cwd ./playgrounds/angular && yarn --cwd ./playgrounds/angular build",
"playground:vue": "yarn --cwd ./playgrounds/vue && yarn --cwd ./playgrounds/vue serve",
"playground:react": "yarn --cwd ./playgrounds/react && yarn --cwd ./playgrounds/react start",
"playground:javascript": "yarn --cwd ./playgrounds/javascript && yarn --cwd ./playgrounds/javascript start",
"playground:html": "yarn --cwd ./playgrounds/html && yarn --cwd ./playgrounds/html start",
"playground:angular": "yarn --cwd ./playgrounds/angular && yarn --cwd ./playgrounds/angular start",
"test:e2e": "yarn e2e:angular",
"e2e:angular": "yarn --cwd ./playgrounds/angular && yarn --cwd ./playgrounds/angular e2e",
"postbuild": "yarn typingsheader",
"typingsheader": "node scripts/build.js",
"build": "yarn cleanup && rollup -c rollup.config.js && rollup --environment NODE_ENV:production -c rollup.config.js ",
Expand Down
17 changes: 17 additions & 0 deletions playgrounds/angular/.browserslistrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries

# For the full list of supported browsers by the Angular framework, please see:
# https://angular.io/guide/browser-support

# You can see what browsers were selected by your queries by running:
# npx browserslist

last 1 Chrome version
last 1 Firefox version
last 2 Edge major versions
last 2 Safari major versions
last 2 iOS major versions
Firefox ESR
not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.
46 changes: 46 additions & 0 deletions playgrounds/angular/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.

# compiled output
/dist
/tmp
/out-tsc
# Only exists if Bazel was run
/bazel-out

# dependencies
/node_modules

# profiling files
chrome-profiler-events*.json
speed-measure-plugin*.json

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*

# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings

# System Files
.DS_Store
Thumbs.db
24 changes: 24 additions & 0 deletions playgrounds/angular/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Angular Playground

## Project setup
```
yarn install
```

### Compiles and hot-reloads for development
```
yarn start
```

### Compiles and minifies for production
```
yarn build
```

## Running end-to-end tests

```
yarn e2e
```

Run `yarn e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
97 changes: 97 additions & 0 deletions playgrounds/angular/angular.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"angular": {
"projectType": "application",
"schematics": {},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/angular",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": true,
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"node_modules/angular-instantsearch/bundles/instantsearch-theme-algolia.min.css",

"src/styles.css"
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"extractCss": true,
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "10kb"
}
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "angular:build"
},
"configurations": {
"production": {
"browserTarget": "angular:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "angular:build"
}
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "angular:serve"
},
"configurations": {
"production": {
"devServerTarget": "angular:serve:production"
}
}
}
}
}
},
"defaultProject": "angular"
}
37 changes: 37 additions & 0 deletions playgrounds/angular/e2e/protractor.conf.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// @ts-check
// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts

const { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter')

/**
* @type { import("protractor").Config }
*/
exports.config = {
allScriptsTimeout: 11000,
specs: ['./src/**/*.e2e-spec.ts'],
capabilities: {
browserName: 'chrome',
},
directConnect: true,
SELENIUM_PROMISE_MANAGER: false,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function () {},
},
onPrepare() {
require('ts-node').register({
project: require('path').join(__dirname, './tsconfig.json'),
})
jasmine.getEnv().addReporter(
new SpecReporter({
spec: {
displayStacktrace: StacktraceOption.PRETTY,
},
})
)
},
}
35 changes: 35 additions & 0 deletions playgrounds/angular/e2e/src/app.e2e-spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { browser, logging } from 'protractor'
import { AppPage } from './app.po'

describe('workspace-project App', () => {
let page: AppPage

beforeEach(() => {
page = new AppPage()
})

it('First game should be counter strike', async () => {
await page.navigateTo()
expect(await page.getFirstGame()).toEqual('Counter-Strike')
})

it('First facet value of first facet should be Action', async () => {
await page.navigateTo()
expect(await page.getFirstFacetValueOfFirstFacet()).toEqual('Action')
})

it('Clear refinement should exist', async () => {
await page.navigateTo()
expect(await page.getClearRefinementText()).toEqual('Clear refinements')
})

afterEach(async () => {
// Assert that there are no errors emitted from the browser
const logs = await browser.manage().logs().get(logging.Type.BROWSER)
expect(logs).not.toContain(
jasmine.objectContaining({
level: logging.Level.SEVERE,
} as logging.Entry)
)
})
})
19 changes: 19 additions & 0 deletions playgrounds/angular/e2e/src/app.po.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { browser, by, element } from 'protractor'

export class AppPage {
async navigateTo(): Promise<unknown> {
return await browser.get(browser.baseUrl)
}

async getFirstGame(): Promise<string> {
return await element(by.css('.ais-Hits-item > .hit-name')).getText()
}

async getFirstFacetValueOfFirstFacet(): Promise<string> {
return await element(by.css('.ais-RefinementList-labelText')).getText()
}

async getClearRefinementText(): Promise<string> {
return await element(by.css('.ais-ClearRefinements-button')).getText()
}
}
13 changes: 13 additions & 0 deletions playgrounds/angular/e2e/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/e2e",
"module": "commonjs",
"target": "es2018",
"types": [
"jasmine",
"node"
]
}
}
Loading