-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #38 from hirosystems/develop
release to beta
- Loading branch information
Showing
27 changed files
with
1,487 additions
and
239 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
[alias] | ||
runehook-install = "install --path . --locked --force" | ||
|
||
[env] | ||
# Run tests in one thread so we can support postgres migrations correctly. | ||
RUST_TEST_THREADS = "1" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
{ | ||
"version": "2.0.0", | ||
"tasks": [ | ||
{ | ||
"label": "npm: testenv:run", | ||
"type": "shell", | ||
"command": "npm run testenv:run -- -d", | ||
"isBackground": true, | ||
"options": { | ||
"cwd": "${workspaceFolder}/api/", | ||
}, | ||
"problemMatcher": { | ||
"pattern": { | ||
"regexp": ".", | ||
"file": 1, | ||
"location": 2, | ||
"message": 3 | ||
}, | ||
"background": { | ||
"activeOnStart": true, | ||
"beginsPattern": ".", | ||
"endsPattern": "." | ||
} | ||
} | ||
}, | ||
{ | ||
"label": "npm: testenv:stop", | ||
"type": "shell", | ||
"command": "npm run testenv:stop", | ||
"options": { | ||
"cwd": "${workspaceFolder}/api/", | ||
}, | ||
"presentation": { | ||
"echo": true, | ||
"reveal": "silent", | ||
"focus": false, | ||
"panel": "shared", | ||
"showReuseMessage": true, | ||
"clear": false | ||
} | ||
} | ||
] | ||
} |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,7 +14,10 @@ | |
"generate:vercel": "npm run generate:git-info && npm run generate:openapi && npm run generate:docs", | ||
"lint:eslint": "eslint . --ext .ts,.tsx -f unix", | ||
"lint:prettier": "prettier --check src/**/*.ts tests/**/*.ts", | ||
"lint:unused-exports": "ts-unused-exports tsconfig.json --showLineNumber --excludePathsFromReport=util/*" | ||
"lint:unused-exports": "ts-unused-exports tsconfig.json --showLineNumber --excludePathsFromReport=util/*", | ||
"testenv:run": "docker-compose -f ../docker/docker-compose.dev.postgres.yml up", | ||
"testenv:stop": "docker-compose -f ../docker/docker-compose.dev.postgres.yml down -v -t 0", | ||
"testenv:logs": "docker-compose -f ../docker/docker-compose.dev.postgres.yml logs -t -f" | ||
}, | ||
"author": "Hiro Systems PBC <[email protected]> (https://hiro.so)", | ||
"license": "Apache 2.0", | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,151 @@ | ||
test('sample', () => { | ||
expect(true); | ||
import { ENV } from '../../src/env'; | ||
import { PgStore } from '../../src/pg/pg-store'; | ||
import { | ||
dropDatabase, | ||
insertDbLedgerEntry, | ||
insertRune, | ||
sampleRune, | ||
runMigrations, | ||
startTestApiServer, | ||
TestFastifyServer, | ||
insertSupplyChange, | ||
sampleLedgerEntry, | ||
} from '../helpers'; | ||
|
||
describe('Endpoints', () => { | ||
let db: PgStore; | ||
let fastify: TestFastifyServer; | ||
|
||
const rune = sampleRune('1:1', 'Sample Rune'); | ||
const ledgerEntry = sampleLedgerEntry(rune.id); | ||
|
||
beforeEach(async () => { | ||
ENV.PGDATABASE = 'postgres'; | ||
db = await PgStore.connect(); | ||
fastify = await startTestApiServer(db); | ||
await runMigrations(db); | ||
await insertRune(db, rune); | ||
const event_index = 0; | ||
await insertDbLedgerEntry(db, ledgerEntry, event_index); | ||
await insertSupplyChange(db, rune.id, 1); | ||
}); | ||
|
||
afterEach(async () => { | ||
if (fastify) { | ||
await fastify.close(); | ||
} | ||
|
||
await dropDatabase(db); | ||
await db.close(); | ||
}); | ||
|
||
describe('Etchings', () => { | ||
test('lists runes', async () => { | ||
const expected = { | ||
divisibility: 0, | ||
id: '1:1', | ||
location: { | ||
block_hash: '0000000000000000000320283a032748cef8227873ff4872689bf23f1cda83a5', | ||
block_height: 840000, | ||
timestamp: 0, | ||
tx_id: '2bb85f4b004be6da54f766c17c1e855187327112c231ef2ff35ebad0ea67c69e', | ||
tx_index: 1, | ||
}, | ||
mint_terms: { | ||
amount: '100', | ||
cap: '5000000', | ||
height_end: null, | ||
height_start: null, | ||
offset_end: null, | ||
offset_start: null, | ||
}, | ||
name: 'Sample Rune', | ||
number: 1, | ||
spaced_name: 'Sample•Rune', | ||
supply: { | ||
burned: '0', | ||
current: '0', | ||
mint_percentage: '0.0000', | ||
mintable: false, | ||
minted: '0', | ||
premine: '0', | ||
total_burns: '0', | ||
total_mints: '0', | ||
}, | ||
symbol: 'ᚠ', | ||
turbo: false, | ||
}; | ||
const runesResponse = await fastify.inject({ | ||
method: 'GET', | ||
url: '/runes/v1/etchings', | ||
}); | ||
expect(runesResponse.statusCode).toBe(200); | ||
expect(runesResponse.json().results).not.toHaveLength(0); | ||
|
||
const response = await fastify.inject({ | ||
method: 'GET', | ||
url: '/runes/v1/etchings/' + ledgerEntry.rune_id, | ||
}); | ||
expect(response.statusCode).toBe(200); | ||
expect(response.json()).toStrictEqual(expected); | ||
}); | ||
|
||
test('can fetch by spaced name', async () => { | ||
const url = '/runes/v1/etchings/' + rune.spaced_name; | ||
const response = await fastify.inject({ | ||
method: 'GET', | ||
url: url, | ||
}); | ||
expect(response.statusCode).toBe(200); | ||
expect(response.json().spaced_name).toEqual(rune.spaced_name); | ||
}); | ||
|
||
test('can not fetch by spaced name if lacking bullets', async () => { | ||
const url = '/runes/v1/etchings/' + rune.spaced_name.replaceAll('•', '-'); | ||
const response = await fastify.inject({ | ||
method: 'GET', | ||
url: url, | ||
}); | ||
expect(response.statusCode).toBe(400); | ||
}); | ||
}); | ||
describe('Transactions', () => { | ||
test('shows details', async () => { | ||
const expected = { | ||
limit: 20, | ||
offset: 0, | ||
results: [ | ||
{ | ||
address: '0', | ||
amount: '0', | ||
location: { | ||
block_hash: '0000000000000000000320283a032748cef8227873ff4872689bf23f1cda83a5', | ||
block_height: 840000, | ||
output: '2bb85f4b004be6da54f766c17c1e855187327112c231ef2ff35ebad0ea67c69e:0', | ||
timestamp: 0, | ||
tx_id: '2bb85f4b004be6da54f766c17c1e855187327112c231ef2ff35ebad0ea67c69e', | ||
tx_index: 0, | ||
vout: 0, | ||
}, | ||
operation: 'etching', | ||
receiver_address: '0', | ||
rune: { | ||
id: '1:1', | ||
name: 'Sample Rune', | ||
number: 1, | ||
spaced_name: 'Sample•Rune', | ||
}, | ||
}, | ||
], | ||
total: 1, | ||
}; | ||
const txid = ledgerEntry.tx_id; | ||
const response = await fastify.inject({ | ||
method: 'GET', | ||
url: '/runes/v1/transactions/' + txid + '/activity', | ||
}); | ||
expect(response.statusCode).toBe(200); | ||
expect(response.json()).toStrictEqual(expected); | ||
}); | ||
}); | ||
}); |
Oops, something went wrong.