Skip to content

Commit

Permalink
initial keplr set up
Browse files Browse the repository at this point in the history
  • Loading branch information
Seroxdesign committed Jun 12, 2024
1 parent 5e42b68 commit c5087d0
Show file tree
Hide file tree
Showing 8 changed files with 174 additions and 0 deletions.
16 changes: 16 additions & 0 deletions wallets/keplr/cypress.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { defineConfig } from 'cypress'
import { installSynpress } from './src/cypress'

export default defineConfig({
chromeWebSecurity: false,
e2e: {
baseUrl: 'http://localhost:9999',
specPattern: 'test/cypress/**/*.cy.{js,jsx,ts,tsx}',
supportFile: 'src/cypress/support/e2e.{js,jsx,ts,tsx}',
fixturesFolder: 'src/cypress/fixtures',
testIsolation: false,
async setupNodeEvents(on, config) {
return installSynpress(on, config)
}
}
})
19 changes: 19 additions & 0 deletions wallets/keplr/environment.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
declare global {
namespace NodeJS {
interface ProcessEnv {
CI: boolean
HEADLESS: boolean
}
}
}

declare global {
interface Window {
ethereum: import('ethers').Eip1193Provider
}

// biome-ignore lint/suspicious/noExplicitAny: Web3Mock is a mock object
const Web3Mock: any
}

export {}
46 changes: 46 additions & 0 deletions wallets/keplr/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"name": "@synthetixio/keplr",
"version": "0.0.1-alpha.0",
"type": "module",
"exports": {
"types": "./types/index.d.ts",
"default": "./dist/index.js"
},
"main": "./dist/index.js",
"types": "./types/index.d.ts",
"files": [
"dist",
"src",
"types"
],
"scripts": {
"build": "pnpm run clean && pnpm run build:dist && pnpm run build:types",
"build:dist": "tsup --tsconfig tsconfig.build.json",
"build:types": "tsc --emitDeclarationOnly --project tsconfig.build.json",
"clean": "rimraf dist types",
"test": "vitest run",
"test:coverage": "vitest run --coverage",
"test:e2e:headful": "playwright test",
"test:e2e:headless": "HEADLESS=true playwright test",
"test:e2e:headless:ui": "HEADLESS=true playwright test --ui",
"test:watch": "vitest watch",
"types:check": "tsc --noEmit"
},
"dependencies": {
"@synthetixio/synpress-cache": "workspace:*",
"@synthetixio/synpress-core": "workspace:*"
},
"devDependencies": {
"@synthetixio/synpress-tsconfig": "workspace:*",
"@types/node": "20.11.17",
"@vitest/coverage-v8": "1.2.2",
"cypress": "13.9.0",
"rimraf": "5.0.5",
"tsup": "8.0.2",
"typescript": "5.3.3",
"vitest": "1.2.2"
},
"peerDependencies": {
"@playwright/test": "1.44.0"
}
}
50 changes: 50 additions & 0 deletions wallets/keplr/playwright.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import { defineConfig, devices } from '@playwright/test'

/**
* See https://playwright.dev/docs/test-configuration.
*/
export default defineConfig({
// Look for test files in the "test/e2e" directory, relative to this configuration file.
testDir: './test/playwright',

// We're increasing the timeout to 60 seconds to allow all traces to be recorded.
// Sometimes it threw an error saying that traces were not recorded in the 30 seconds timeout limit.
timeout: 60_000,

// Run all tests in parallel.
fullyParallel: true,

// Fail the build on CI if you accidentally left test.only in the source code.
forbidOnly: !!process.env.CI,

// Fail all remaining tests on CI after the first failure. We want to reduce the feedback loop on CI to minimum.
maxFailures: process.env.CI ? 1 : 0,

// Opt out of parallel tests on CI since it supports only 1 worker.
workers: process.env.CI ? 1 : undefined,

// Concise 'dot' for CI, default 'html' when running locally.
// See https://playwright.dev/docs/test-reporters.
reporter: process.env.CI
? [['html', { open: 'never', outputFolder: `playwright-report-${process.env.HEADLESS ? 'headless' : 'headful'}` }]]
: 'html',

// Shared settings for all the projects below.
// See https://playwright.dev/docs/api/class-testoptions.
use: {
// We are using locally deployed MetaMask Test Dapp.
baseURL: 'http://localhost:9999',

// Collect all traces on CI, and only traces for failed tests when running locally.
// See https://playwright.dev/docs/trace-viewer.
trace: process.env.CI ? 'on' : 'retain-on-failure'
},

// Configure projects for major browsers.
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'] }
}
]
})
12 changes: 12 additions & 0 deletions wallets/keplr/tsconfig.build.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"extends": "@synthetixio/synpress-tsconfig/base.json",
"compilerOptions": {
"rootDir": "src",
"outDir": "types",
"declaration": true,
"sourceMap": true,
"declarationMap": true
},
"include": ["src"],
"files": ["environment.d.ts"]
}
12 changes: 12 additions & 0 deletions wallets/keplr/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"type": "commonjs",
"extends": "./tsconfig.build.json",
"compilerOptions": {
"rootDir": ".",
"exactOptionalPropertyTypes": false, // Allows for `undefined` in `playwright.config.ts`
"types": ["cypress"],
"sourceMap": false
},
"include": ["src", "test"],
"files": ["environment.d.ts", "playwright.config.ts", "vitest.config.ts"]
}
12 changes: 12 additions & 0 deletions wallets/keplr/tsup.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { defineConfig } from 'tsup'

export default defineConfig({
name: 'keplr',
entry: ['src/index.ts'],
outDir: 'dist',
format: 'esm',
splitting: false,
treeshake: true,
sourcemap: true,
external: ['@playwright/test']
})
7 changes: 7 additions & 0 deletions wallets/keplr/vitetest.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { defineConfig } from 'vitest/config'

export default defineConfig({
test: {
dir: 'test/unit'
}
})

0 comments on commit c5087d0

Please sign in to comment.