mirror of
https://github.com/chaisql/chai.git
synced 2025-10-05 15:46:55 +08:00
Add Github action workflow (#437)
This commit is contained in:
39
.github/workflows/go.yml
vendored
Normal file
39
.github/workflows/go.yml
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
name: Go
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
branches: [main]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.17
|
||||
|
||||
- name: Vendor
|
||||
run: go mod vendor
|
||||
|
||||
- name: Build
|
||||
run: make
|
||||
|
||||
- name: Install go-acc
|
||||
run: go install github.com/ory/go-acc@latest
|
||||
|
||||
- name: Test Genji
|
||||
run: go-acc $(go list ./...) -- -mod vendor -race -timeout=2m
|
||||
|
||||
- name: Test Genji CLI
|
||||
run: cd ./cmd/genji && go test -race ./... && cd -
|
||||
|
||||
- name: Test Badget Engine
|
||||
run: cd ./engine/badgerengine && go test -race ./... && cd -
|
||||
|
||||
- name: Upload Codecov
|
||||
run: bash <(curl -s https://codecov.io/bash)
|
24
.travis.yml
24
.travis.yml
@@ -1,24 +0,0 @@
|
||||
language: go
|
||||
|
||||
env:
|
||||
- GO111MODULE=on
|
||||
|
||||
go:
|
||||
- "1.17.x"
|
||||
- tip
|
||||
|
||||
matrix:
|
||||
allow_failures:
|
||||
- go: tip
|
||||
|
||||
script:
|
||||
- go mod vendor
|
||||
- make
|
||||
- make gen
|
||||
- go install github.com/ory/go-acc@latest
|
||||
- go-acc $(go list ./...) -- -mod vendor -race -timeout=2m
|
||||
- cd ./cmd/genji && go test -race ./... && cd -
|
||||
- cd ./engine/badgerengine && go test -race ./... && cd -
|
||||
|
||||
after_success:
|
||||
- bash <(curl -s https://codecov.io/bash)
|
@@ -87,7 +87,7 @@ func (q *Query) Prepare(context *Context) error {
|
||||
}
|
||||
|
||||
// Run executes all the statements in their own transaction and returns the last result.
|
||||
func (q *Query) Run(context *Context) (*statement.Result, error) {
|
||||
func (q Query) Run(context *Context) (*statement.Result, error) {
|
||||
var res statement.Result
|
||||
var err error
|
||||
|
||||
@@ -109,7 +109,7 @@ func (q *Query) Run(context *Context) (*statement.Result, error) {
|
||||
res = statement.Result{}
|
||||
|
||||
if qa, ok := stmt.(queryAlterer); ok {
|
||||
err = qa.alterQuery(ctx, context.DB, q)
|
||||
err = qa.alterQuery(ctx, context.DB, &q)
|
||||
if err != nil {
|
||||
if tx := context.GetTx(); tx != nil {
|
||||
tx.Rollback()
|
||||
|
@@ -19,11 +19,11 @@ func TestInsertStmt(t *testing.T) {
|
||||
expected string
|
||||
params []interface{}
|
||||
}{
|
||||
{"Values / Positional Params", "INSERT INTO test (a, b, c) VALUES (?, 'e', ?)", false, `[{"pk()":1,"a":"d","b":"e","c":"f"}]`, []interface{}{"d", "f"}},
|
||||
{"Values / Named Params", "INSERT INTO test (a, b, c) VALUES ($d, 'e', $f)", false, `[{"pk()":1,"a":"d","b":"e","c":"f"}]`, []interface{}{sql.Named("f", "f"), sql.Named("d", "d")}},
|
||||
{"Values / Positional Params", "INSERT INTO test (a, b, c) VALUES (?, 'e', ?)", false, `[{"pk()":[1],"a":"d","b":"e","c":"f"}]`, []interface{}{"d", "f"}},
|
||||
{"Values / Named Params", "INSERT INTO test (a, b, c) VALUES ($d, 'e', $f)", false, `[{"pk()":[1],"a":"d","b":"e","c":"f"}]`, []interface{}{sql.Named("f", "f"), sql.Named("d", "d")}},
|
||||
{"Values / Invalid params", "INSERT INTO test (a, b, c) VALUES ('d', ?)", true, "", []interface{}{'e'}},
|
||||
{"Documents / Named Params", "INSERT INTO test VALUES {a: $a, b: 2.3, c: $c}", false, `[{"pk()":1,"a":1,"b":2.3,"c":true}]`, []interface{}{sql.Named("c", true), sql.Named("a", 1)}},
|
||||
{"Documents / List ", "INSERT INTO test VALUES {a: [1, 2, 3]}", false, `[{"pk()":1,"a":[1,2,3]}]`, nil},
|
||||
{"Documents / Named Params", "INSERT INTO test VALUES {a: $a, b: 2.3, c: $c}", false, `[{"pk()":[1],"a":1,"b":2.3,"c":true}]`, []interface{}{sql.Named("c", true), sql.Named("a", 1)}},
|
||||
{"Documents / List ", "INSERT INTO test VALUES {a: [1, 2, 3]}", false, `[{"pk()":[1],"a":[1,2,3]}]`, nil},
|
||||
{"Select / same table", "INSERT INTO test SELECT * FROM test", true, ``, nil},
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ func TestInsertStmt(t *testing.T) {
|
||||
|
||||
d, err := db.QueryDocument(`insert into test (a) VALUES (1) RETURNING *, pk(), a AS A`)
|
||||
assert.NoError(t, err)
|
||||
testutil.RequireDocJSONEq(t, d, `{"a": 1, "pk()": 1, "A": 1}`)
|
||||
testutil.RequireDocJSONEq(t, d, `{"a": 1, "pk()": [1], "A": 1}`)
|
||||
})
|
||||
|
||||
t.Run("ensure rollback", func(t *testing.T) {
|
||||
@@ -170,10 +170,10 @@ func TestInsertSelect(t *testing.T) {
|
||||
params []interface{}
|
||||
}{
|
||||
{"Same table", `INSERT INTO foo SELECT * FROM foo`, true, ``, nil},
|
||||
{"No fields / No projection", `INSERT INTO foo SELECT * FROM bar`, false, `[{"pk()":1, "a":1, "b":10}]`, nil},
|
||||
{"No fields / Projection", `INSERT INTO foo SELECT a FROM bar`, false, `[{"pk()":1, "a":1}]`, nil},
|
||||
{"With fields / No Projection", `INSERT INTO foo (a, b) SELECT * FROM bar`, false, `[{"pk()":1, "a":1, "b":10}]`, nil},
|
||||
{"With fields / Projection", `INSERT INTO foo (c, d) SELECT a, b FROM bar`, false, `[{"pk()":1, "c":1, "d":10}]`, nil},
|
||||
{"No fields / No projection", `INSERT INTO foo SELECT * FROM bar`, false, `[{"pk()":[1], "a":1, "b":10}]`, nil},
|
||||
{"No fields / Projection", `INSERT INTO foo SELECT a FROM bar`, false, `[{"pk()":[1], "a":1}]`, nil},
|
||||
{"With fields / No Projection", `INSERT INTO foo (a, b) SELECT * FROM bar`, false, `[{"pk()":[1], "a":1, "b":10}]`, nil},
|
||||
{"With fields / Projection", `INSERT INTO foo (c, d) SELECT a, b FROM bar`, false, `[{"pk()":[1], "c":1, "d":10}]`, nil},
|
||||
{"Too many fields / No Projection", `INSERT INTO foo (c) SELECT * FROM bar`, true, ``, nil},
|
||||
{"Too many fields / Projection", `INSERT INTO foo (c, d) SELECT a, b, c FROM bar`, true, ``, nil},
|
||||
{"Too few fields / No Projection", `INSERT INTO foo (c, d, e) SELECT * FROM bar`, true, ``, nil},
|
||||
|
Reference in New Issue
Block a user