Skip to content

Commit

Permalink
feat(api): implement object::save rpc method
Browse files Browse the repository at this point in the history
Ref #1
  • Loading branch information
guillaumearm committed Nov 4, 2018
1 parent 0ce40cc commit 5367c11
Show file tree
Hide file tree
Showing 20 changed files with 151 additions and 47 deletions.
1 change: 1 addition & 0 deletions src/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ export const createJeedomApi = (jeedomRpc: RpcInterface): JeedomApi => ({
full: () => jeedomRpc('object::full'),
fullById: (params) => jeedomRpc('object::fullById', params),
byId: (params) => jeedomRpc('object::byId', params),
save: (params) => jeedomRpc('object::save', params),
},
})

Expand Down
7 changes: 6 additions & 1 deletion src/api/types/object.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,18 @@ export type FullJeedomObject = JeedomObject & {
eqLogics: any
}

export type ObjectByIdParams = { id: number }
export type ObjectByIdParams = { id: string | number }

export type ObjectSaveParams =
| (Partial<JeedomObject> & { id: string | number })
| (Partial<JeedomObject> & { name: string | number })

export type ObjectApi = {
object: {
all: () => Promise<JeedomObject[]>
full: () => Promise<FullJeedomObject[]>
fullById: (params: ObjectByIdParams) => Promise<FullJeedomObject>
byId: (params: ObjectByIdParams) => Promise<JeedomObject>
save: (params: ObjectSaveParams) => Promise<any>
}
}
2 changes: 1 addition & 1 deletion src/rpc/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export type JsonRpcResponse<T = any> = {
error?: { message: string; code: number }
}

export type Params = Record<string, string | number | null | undefined>
export type Params = Record<string, any>

export type RpcInterface = (method: string, params?: Params, id?: Nullable<number>) => Promise<any>

Expand Down
2 changes: 1 addition & 1 deletion tests/__nock-fixtures__/jeedom-[error] object::byId.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
],
"rawHeaders": [
"Date",
"Sun, 04 Nov 2018 19:33:43 GMT",
"Sun, 04 Nov 2018 20:03:49 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
],
"rawHeaders": [
"Date",
"Sun, 04 Nov 2018 19:33:43 GMT",
"Sun, 04 Nov 2018 20:03:49 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down
2 changes: 1 addition & 1 deletion tests/__nock-fixtures__/jeedom-config::byKey.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
},
"rawHeaders": [
"Date",
"Sun, 04 Nov 2018 19:33:42 GMT",
"Sun, 04 Nov 2018 20:03:47 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down
6 changes: 3 additions & 3 deletions tests/__nock-fixtures__/jeedom-config::save.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
},
"rawHeaders": [
"Date",
"Sun, 04 Nov 2018 19:33:42 GMT",
"Sun, 04 Nov 2018 20:03:47 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down Expand Up @@ -57,7 +57,7 @@
},
"rawHeaders": [
"Date",
"Sun, 04 Nov 2018 19:33:42 GMT",
"Sun, 04 Nov 2018 20:03:47 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down Expand Up @@ -93,7 +93,7 @@
},
"rawHeaders": [
"Date",
"Sun, 04 Nov 2018 19:33:42 GMT",
"Sun, 04 Nov 2018 20:03:47 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down
4 changes: 2 additions & 2 deletions tests/__nock-fixtures__/jeedom-datetime.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@
"response": {
"jsonrpc": "2.0",
"id": null,
"result": 1541360022.3638
"result": 1541361827.1192
},
"rawHeaders": [
"Date",
"Sun, 04 Nov 2018 19:33:42 GMT",
"Sun, 04 Nov 2018 20:03:47 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down
8 changes: 4 additions & 4 deletions tests/__nock-fixtures__/jeedom-event::changes.json

Large diffs are not rendered by default.

7 changes: 3 additions & 4 deletions tests/__nock-fixtures__/jeedom-object::all.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,11 @@
},
"status": 200,
"response": [
"1f8b0800000000000003eddd5b73a3361400e0bfe221af76cbc5373cdb9dd926dbcbc3b69de94efb9064320284ad5d21792448769bc97fafc0c610405c9a4da6768e5f62a3832d8e12be1c2ef2bdf1497226b6beb132ecef4c636c90c058b184d2b121b04c686cac2eefb38586a55a198ab07afa0111b59a7a1da27883c54db112917f11493c8af72b6cb9243151b1bb973e6721592702ed96dd1b5b24308b7f4b220f0b63658e0d994411125f57ab35e51ea2ab95c47e2248fc55bd43dabf5a7bc4f7efdfd81a702e746d778405fc4eea9ae5268963ac5d9b92f526d635f224a658db1ae3688b550e128175219b242241cb5653d5ced2dc6a23b6fcaedef90d09b04a0a969f63bed5e7b612d69ce24a5053a62b219a84573bd59cf74a5463fa2b31cda350096a198c4aa46e4caa3dd30e4d25b0658422ee118abb06288f6a1b9f3c463f3c7944ebe81c3ad436387950cbd8e4216d4393c7748e4c1ed83e30875e758c4b1ed7302ce99eaa188acbebb191a73c7dbe4b6dfaec90c2f4c52155e98b7d4ad4bed48fd29de999e53867e9ee96dd62b1cbc3c3f8d0e858d3b64657df68d9b3b6c6da9aaa6bf950a4dd7c94f2744191da6c2b4a294c5fef537579fda05645eb734eb35fb233337b18d9c28ff84b7c68f8297ba886e2af7d97e1729491a677ffebd6d8ba5f7a734b449c209af163d8e6546dab1110b9a5281b31e2677f146fc8c8a748ca1faeb225a328c36bb2e189c496655f196fdf5c7d4fde1a8f37210c4d64fa0d9b70d8368959f091bfdb6e77994cf3bceb48e1e49f88523cba4a4c139ba30f88ad55b61ea199a1d862a6dd6da67584665a602698096682993dcdc40c15bbc756e99a234f83bd34e5bfb30b24371e4722789cee2a86b34118068411b67634167ace6c6a7a7d2db43ab6b3582bc83745c5917fd2512b31ea148c9e27ca478687d1e9009d4027d00974029d3510ebb5e7e983680f02d1cfc82158608d890bcf0cc2f0854d9c3e2a2dab4760bb449c828820228808228288f512d1ea5b4c5a8bd767e77c909d928748574a86e17c86ec176673562a253728f2c4c052720670029c0027c0097056395cce6b709e3a8796eb0e3cd118633ad578683a8185672fece1dca89ca1bcc0a31f116172188bf3d364b1b111580416814560b1c6e2116a37042f4f7120388f6cdd7532531c0e380e5abe4e665128f4f7f9307916200fc803f2803c20cfc9ca23b1b825beeef49b692fdcffc6ceb260e722bb32d3ddaa48c47c3cb0fc59024280102004080142a787d0278c031e4dd648a0359ef0243dbca9bd12240cada6ce7652e41614fd8298faac0a40cb7680dc6e80ec2304084e4b0140001000f4b4eb39e6aff0320da79f6d889108d1c9860b89e7a6aec09a85a189fbabf64d4e4c658cee45fc832714114a6bb7cc75a898bdc709b2087519b0082c028bafbb2edbdbe56f88ff1933dd4929cb5278f5beaaa25c9259a5594ede7f8977070805c189187874d0ea31ddc9311e1e84ea0c18028680a1a754678ed934bd4953a4ed36cd75d2fc9e7d23ede5bcf7a7d7fa7984ae0e2c2217fd2066d9464f50122711b374456418860bb761bb14cfcf7675a355ba4beebdfae08117fb5b273ae70ad48f0037c00d70bfeefa71775ecf9e6c78846f84ce2dc5963f6d99fcab844dfddeb291fa7f81ec2bc781f4f49bb3e4fff29fc3f1d807452bd8",
"07f6817d4f9b3465fa8cb3a6688a316bd02593eac3d50f1d6aae3773bd796331963ebe51f155bab72cf7f0e784508a92686821d66fbe12d01034040d4143d0f06535749e71524d8d86e6b05bd770a03b3ff83214962682fe95855c44196295f388dd5f9bd063f611f8de0450081402854e57a1533d1e1910e5a79cc8dbb5fe7b089abba89920a4e44f6906e57749cc537e6454bdcbaddb9f1ed37c803fe00ff803fe803fc7eb8ffe8b70960301ba7ef817eb876688576e0000"
"1f8b0800000000000003eddd5b73a3361400e0bfe221af718bc0373cdb9dd926dbcbc3b69d69a67d48321901c26857481e04c9a699fcf70a6c6c8c119766e3a99de397d8d6c1968e127f395ce427e3b3143c5e7ac6dcb0be338d7383fac69ca78c9d1b3191294b8cf9f553fea46121d5cc7144d4fd2b2293c167427c110db9f0896a09701292f86ebb3d957f51495d96c567afbc14922654f0a2dd133ca08b34c6ab279f8c258e094f7e4b2397c4c6dc3c3712bcb8104ca807c69999df8cfcc92bf235d934fc94df54834fe497442ce7739946118e1fcb51aa39122e65a4bef5596d4de592e1c755e79ecfd7632e0df913a62a556d03453b03cd1fb68f73dda5f97cc1848b99ea23f1d298268febccedb54762fdfab5adbec84755dbf640b92f1ea4ae5986699210edd68c2ec244d728d284116d6b42a22551394863a20b09d388fa0da366aa9d67b9d5462cc5c37ee743eaab69dffe7668725b09ab4f7125a82ed395104dc2ab9daacf7b25aa36fd9598fa59a804354c4625523727d59e69a7a612d830439b3fd0c6092aa29ae6a788d14f4f11d1383b9b0e354d4e11d430374548d3d41431ad335304364fcca6572df352c4d54c4bf649b59d8aebdbec137495f2ecfe2ab5d9bd4d0ab3079b54650fd629517e7851f6617a866cfb2c2386df93789587ec8376dd68a35153a3a36f44d6b8a9716f4bd5b5622ab26eeea43c7b629bda7c14a514668fd7a9babe7d3e20509b59b9bba771926276b722d91cedd8a5d4f2f23f8a7774e0312ce50f37f9338328c76b188a541284ac1be3fdbb9befe97b637708416062d3ab19c2666c9270ff4a7c582e5799dc38696d9dfc1333460637a9691273f009f385cad60e9a398a0d665aed66a22334138199602698096676349370bcfd786c94ae3ef234d8cb52fe3bbfc43274058efddd7457311cf7c2d0a79cf285adb1d0b5c723d3ed6a216a19e7762bbf188a8aa3ff90bcfadc306a6f19bd48958fbc5258b7d169039d4027d00974029d7b20eed79ea70fa2d50b442f27879298684c9cbaa61f04073671b4535a56f7c0b68938021141441011440411f74b44d4b59844d3b767e7a4979d520458574a06c1648cad03b3392e9592218edcb86729390638014e8013e00438ab1cce267b709e3a87c8717a1e684c081b693c346d1f91f1813d9c189523949764f023a65cf66371729a2cd636028bc022b0082ceeb17884daf5c1cb551cc4424496ee3c9911097aec072d9f2733dd2af4f7453f79a6200fc803f2803c20cfc9ca23497c4f3ddde137d39a3aff8d9dd9969dcbfccc4c67a92231f748cff2670608014280102004089d1e42ebebf91638c60b321469b67b537b264810a0baceb652e46c29fa0573f55e158066cd0039ed00594708101c960280002000e865e7734cdee0691a7637db30a71166c350c4924c4c5d81350e02937457ed9b1c98ca195d8bf8874819a68ced5d32d7a262fe1a27c822d465c022b0082cbeedba6c6d971752ef0be1ba83520829bc3a9f55512ec9506995938f5f93d50ec2989234eeb977107558eee418770f4275060c0143c0d04baa33dbac5bdea42ed272ead63aa97fcdae91d66cd2f9ddf7fa7984aef62c22a7dd20e6f9a087384dd288235d111904c1d4a91997e2f9d5ce6e44a5abe43eaa37ee79b23f3ad13557a07e04b8016e80fb6dd78fabe37ad6301411b98b756e29b6bc51c3e25f256cf6af2d1ba8ff17e8ba72ec494fb7354bfe2fff391c8f7d50b4827d601fd8f7b2455346afb86a8aa61843bd4e99546fae7ee85073dcb1e34e6a8bb1ecf68d8aafd2b56585873fa794319c467d0bb16eeb958086a02168081a828687d5d07ec54535351a9afd2e5d23beeef8e061282c2d04fd2b0f441ce588558e23b67f6d4287d547e07b1340215008143a5d854e757fa44f959f7228ef17faef21a8efa2668190923fa515943fa489c8f89151f52ab7767f3a2cf301fe803fe00ff803fe1caf3ffa2fc299f504e8f6f95f46b3d75a4b6f0000"
],
"rawHeaders": [
"Date",
"Sun, 04 Nov 2018 19:33:42 GMT",
"Sun, 04 Nov 2018 20:03:48 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand All @@ -28,7 +27,7 @@
"Content-Encoding",
"gzip",
"Content-Length",
"1401",
"1435",
"Connection",
"close",
"Content-Type",
Expand Down
2 changes: 1 addition & 1 deletion tests/__nock-fixtures__/jeedom-object::byId.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
],
"rawHeaders": [
"Date",
"Sun, 04 Nov 2018 19:33:43 GMT",
"Sun, 04 Nov 2018 20:03:49 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down
23 changes: 13 additions & 10 deletions tests/__nock-fixtures__/jeedom-object::full.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion tests/__nock-fixtures__/jeedom-object::fullById.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
],
"rawHeaders": [
"Date",
"Sun, 04 Nov 2018 19:33:43 GMT",
"Sun, 04 Nov 2018 20:03:48 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down
73 changes: 73 additions & 0 deletions tests/__nock-fixtures__/jeedom-object::save.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
[
{
"scope": "http://192.168.1.60:80",
"method": "POST",
"path": "/core/api/jeeApi.php",
"body": {
"jsonrpc": "2.0",
"id": null,
"method": "object::all",
"params": {
"apikey": "42"
}
},
"status": 200,
"response": [
"1f8b0800000000000003eddd5b73a3361400e0bfe221af718bc0373cdb9dd926dbcbc3b69d69a67d48321901c26857481e04c9a699fcf70a6c6c8c119766e3a99de397d8d6c1968e127f395ce427e3b3143c5e7ac6dcb0be338d7383fac69ca78c9d1b3191294b8cf9f553fea46121d5cc7144d4fd2b2293c167427c110db9f0896a09701292f86ebb3d957f51495d96c567afbc14922654f0a2dd133ca08b34c6ab279f8c258e094f7e4b2397c4c6dc3c3712bcb8104ca807c69999df8cfcc92bf235d934fc94df54834fe497442ce7739946118e1fcb51aa39122e65a4bef5596d4de592e1c755e79ecfd7632e0df913a62a556d03453b03cd1fb68f73dda5f97cc1848b99ea23f1d298268febccedb54762fdfab5adbec84755dbf640b92f1ea4ae5986699210edd68c2ec244d728d284116d6b42a22551394863a20b09d388fa0da366aa9d67b9d5462cc5c37ee743eaab69dffe7668725b09ab4f7125a82ed395104dc2ab9daacf7b25aa36fd9598fa59a804354c4625523727d59e69a7a612d830439b3fd0c6092aa29ae6a788d14f4f11d1383b9b0e354d4e11d430374548d3d41431ad335304364fcca6572df352c4d54c4bf649b59d8aebdbec137495f2ecfe2ab5d9bd4d0ab3079b54650fd629517e7851f6617a866cfb2c2386df93789587ec8376dd68a35153a3a36f44d6b8a9716f4bd5b5622ab26eeea43c7b629bda7c14a514668fd7a9babe7d3e20509b59b9bba771926276b722d91cedd8a5d4f2f23f8a7774e0312ce50f37f9338328c76b188a541284ac1be3fdbb9befe97b637708416062d3ab19c2666c9270ff4a7c582e5799dc38696d9dfc1333460637a9691273f009f385cad60e9a398a0d665aed66a22334138199602698096676349370bcfd786c94ae3ef234d8cb52fe3bbfc43274058efddd7457311cf7c2d0a79cf285adb1d0b5c723d3ed6a216a19e7762bbf188a8aa3ff90bcfadc306a6f19bd48958fbc5258b7d169039d4027d00974029d7b20eed79ea70fa2d50b442f27879298684c9cbaa61f04073671b4535a56f7c0b68938021141441011440411f74b44d4b59844d3b767e7a4979d520458574a06c1648cad03b3392e9592218edcb86729390638014e8013e00438ab1cce267b709e3a87c8717a1e684c081b693c346d1f91f1813d9c189523949764f023a65cf66371729a2cd636028bc022b0082ceeb17884daf5c1cb551cc4424496ee3c9911097aec072d9f2733dd2af4f7453f79a6200fc803f2803c20cfc9ca23497c4f3ddde137d39a3aff8d9dd9969dcbfccc4c67a92231f748cff2670608014280102004089d1e42ebebf91638c60b321469b67b537b264810a0baceb652e46c29fa0573f55e158066cd0039ed00594708101c960280002000e865e7734cdee0691a7637db30a71166c350c4924c4c5d81350e02937457ed9b1c98ca195d8bf8874819a68ced5d32d7a262fe1a27c822d465c022b0082cbeedba6c6d971752ef0be1ba83520829bc3a9f55512ec9506995938f5f93d50ec2989234eeb977107558eee418770f4275060c0143c0d04baa33dbac5bdea42ed272ead63aa97fcdae91d66cd2f9ddf7fa7984aef62c22a7dd20e6f9a087384dd288235d111904c1d4a91997e2f9d5ce6e44a5abe43eaa37ee79b23f3ad13557a07e04b8016e80fb6dd78fabe37ad6301411b98b756e29b6bc51c3e25f256cf6af2d1ba8ff17e8ba72ec494fb7354bfe2fff391c8f7d50b4827d601fd8f7b2455346afb86a8aa61843bd4e99546fae7ee85073dcb1e34e6a8bb1ecf68d8aafd2b56585873fa794319c467d0bb16eeb958086a02168081a828687d5d07ec54535351a9afd2e5d23beeef8e061282c2d04fd2b0f441ce588558e23b67f6d4287d547e07b1340215008143a5d854e757fa44f959f7228ef17faef21a8efa2668190923fa515943fa489c8f89151f52ab7767f3a2cf301fe803fe00ff803fe1caf3ffa2fc299f504e8f6f95f46b3d75a4b6f0000"
],
"rawHeaders": [
"Date",
"Sun, 04 Nov 2018 20:03:49 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
"*",
"Vary",
"Accept-Encoding",
"Content-Encoding",
"gzip",
"Content-Length",
"1435",
"Connection",
"close",
"Content-Type",
"text/html; charset=UTF-8"
]
},
{
"scope": "http://192.168.1.60:80",
"method": "POST",
"path": "/core/api/jeeApi.php",
"body": {
"jsonrpc": "2.0",
"id": null,
"method": "object::save",
"params": {
"id": "21",
"apikey": "42"
}
},
"status": 200,
"response": [
"1f8b08000000000000036d8ebd0ec2300c845f0599b5a0d2312b1223136245696bc090c4519c485455df9d34889f819becfbee2c8f701376c177a0a059d75001f5a05c32a68280924c0435160f9a4da64e5bccf301252e6e883ddb95e31e3339eb78c570fad6498e24d49a393f1ff62c1489dd9b77ecce744941bfcc11bc0ee8e23ed91603a8ba82a82f5b369c1758d64550cc033ee207ec8a32e851ee91bd5292acd561f84d656cb92583ffe994db24dee8e1f5dc343d015e58baf018010000"
],
"rawHeaders": [
"Date",
"Sun, 04 Nov 2018 20:03:49 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
"*",
"Vary",
"Accept-Encoding",
"Content-Encoding",
"gzip",
"Content-Length",
"192",
"Connection",
"close",
"Content-Type",
"text/html; charset=UTF-8"
]
}
]
2 changes: 1 addition & 1 deletion tests/__nock-fixtures__/jeedom-ping.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
},
"rawHeaders": [
"Date",
"Sun, 04 Nov 2018 19:33:42 GMT",
"Sun, 04 Nov 2018 20:03:46 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down
2 changes: 1 addition & 1 deletion tests/__nock-fixtures__/jeedom-version.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
},
"rawHeaders": [
"Date",
"Sun, 04 Nov 2018 19:33:42 GMT",
"Sun, 04 Nov 2018 20:03:47 GMT",
"Server",
"Apache",
"Access-Control-Allow-Origin",
Expand Down
14 changes: 4 additions & 10 deletions tests/api/__snapshots__/event.spec.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,12 @@

exports[`rpc.event event::changes 1`] = `
Object {
"datetime": 1541360022.3831,
"datetime": 1541361826.1685,
"result": Array [
Object {
"datetime": 1541359862.6922,
"name": "cmd::update",
"option": Object {
"cmd_id": "557",
"collectDate": "2018-11-04 20:31:02",
"display_value": "Aucun",
"value": "Aucun",
"valueDate": "2018-11-03 00:00:05",
},
"datetime": 1541361577.0685,
"name": "eibd::monitor",
"option": "{\\"Mode\\":\\"Write\\",\\"AdresseGroupe\\":\\"1\\\\/1\\\\/12\\",\\"AdressePhysique\\":\\"1.1.44\\",\\"data\\":\\"0x 8b 32\\",\\"valeur\\":[139,50],\\"DataPointType\\":\\"1.xxx\\",\\"cmdJeedom\\":\\"La commande n'exites pas\\",\\"datetime\\":\\"04-11-2018 20:59:37\\"}",
},
],
}
Expand Down
2 changes: 1 addition & 1 deletion tests/api/__snapshots__/misc.spec.ts.snap
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`rpc.misc datetime 1`] = `1541360022.3638`;
exports[`rpc.misc datetime 1`] = `1541361827.1192`;

exports[`rpc.misc ping 1`] = `"pong"`;

Expand Down
26 changes: 22 additions & 4 deletions tests/api/__snapshots__/object.spec.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ Array [
"configuration": Object {},
"display": Object {},
"father_id": null,
"id": "1",
"isVisible": "1",
"name": "Maison",
"position": "1",
"id": "21",
"isVisible": "0",
"name": "Test jeedom-node",
"position": null,
},
]
`;
Expand Down Expand Up @@ -112,3 +112,21 @@ Array [
},
]
`;

exports[`object object::save 1`] = `
Object {
"configuration": Object {
"desktop::summaryTextColor": "",
"mobile::summaryTextColor": "",
"parentNumber": 0,
"tagColor": "#000000",
"tagTextColor": "#FFFFFF",
},
"display": null,
"father_id": null,
"id": "21",
"isVisible": "0",
"name": "Test jeedom-node",
"position": null,
}
`;
11 changes: 11 additions & 0 deletions tests/api/object.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { evolve, identity } from 'ramda'
import { JeedomObject } from "../../src/api/types";
import { prepareGenericData, prepareJeedomTest } from '../utils'

describe('object', () => {
Expand Down Expand Up @@ -45,4 +46,14 @@ describe('object', () => {
const expectedError = 'Objet introuvable : -1'
return expect(response).rejects.toThrow(expectedError)
})

recordTest('object::save', async () => {
const objects = await api.object.all()
const testObject = objects.find((obj: JeedomObject) => obj.name === 'Test jeedom-node')
expect(testObject).toBeTruthy()
if (testObject) {
const response = await api.object.save({ id: testObject.id })
expect(response).toMatchSnapshot()
}
})
})

0 comments on commit 5367c11

Please sign in to comment.