Philipp Horstenkamp 6f5729c12a
Some checks failed
Lint / pre-commit Linting (push) Has been cancelled
First development of the deploy action (#6)
Deploy js code to an instance of screeps.
Some debugging tools are implemented.

Reviewed-on: #6
Co-authored-by: Philipp Horstenkamp <philipp@horstenkamp.de>
Co-committed-by: Philipp Horstenkamp <philipp@horstenkamp.de>
2023-11-26 18:31:49 +01:00

204 lines
7.8 KiB
JavaScript

const assert = require('assert');
const _ = require('lodash');
const { ScreepsAPI } = require('../');
const auth = require('./credentials')
describe('api.raw.user', function() {
this.slow(3000);
this.timeout(5000);
describe('.badge (badge)', function() {
it('should send a request to /api/user/badge which sets user badge', async function() {
let opts = _.omit(auth, ['username', 'password'])
let api = new ScreepsAPI(opts)
await api.auth(auth.username, auth.password)
// Save previous badge
let res = await api.me()
let initialBadge = res.badge
// Set new badge
let newBadge = { type: 16, color1: '#000000', color2: '#000000', color3:'#000000', param: 100, flip: false }
res = await api.raw.user.badge(newBadge)
assert.equal(res.ok, 1, 'incorrect server response: ok should be 1')
// Check that badge was effectively changed
res = await api.me()
_.each(res.badge, (value, key) => {
assert.equal(value, newBadge[key], `badge ${key} is incorrect`)
})
// Reset badge
res = await api.raw.user.badge(initialBadge)
})
})
describe('.respawn ()', function() {
it('should do untested things (for now)')
})
describe('.branches ()', function() {
it('should send a request to /api/user/branches and return branches list', async function() {
let opts = _.omit(auth, ['username', 'password'])
let api = new ScreepsAPI(opts)
await api.auth(auth.username, auth.password)
let res = await api.raw.user.branches()
assert.equal(res.ok, 1, 'incorrect server response: ok should be 1')
assert(res.list.length > 0, 'no branch found')
})
})
describe('.cloneBranch (branch, newName, defaultModules)', function() {
it('should send a request to /api/user/clone-branch in order to clone @branch into @newName', async function() {
let opts = _.omit(auth, ['username', 'password'])
let api = new ScreepsAPI(opts)
await api.auth(auth.username, auth.password)
// Create a new branch
let res = await api.raw.user.cloneBranch('default', 'screeps-api-testing')
assert.equal(res.ok, 1, 'incorrect server response: ok should be 1')
// Check if branch was indeed created
res = await api.raw.user.branches()
let found = _.find(res.list, { branch: 'screeps-api-testing' })
assert(found != null, 'branch was not cloned')
})
})
describe('.setActiveBranch (branch, activeName)', function() {
it('should send a request to /api/user/set-active-branch in order to define @branch as active', async function() {
let opts = _.omit(auth, ['username', 'password'])
let api = new ScreepsAPI(opts)
await api.auth(auth.username, auth.password)
// Find current active branch for simulator
let res = await api.raw.user.branches()
let initialBranch = _.find(res.list, { activeSim: true })
assert(initialBranch != null, 'cannot find current active branch for simulator')
// Change active branch for simulator
res = await api.raw.user.setActiveBranch('screeps-api-testing', 'activeSim')
assert.equal(res.ok, 1, 'incorrect server response: ok should be 1')
// Check if branch was indeed changed
res = await api.raw.user.branches()
let found = _.find(res.list, { activeSim: true })
assert.equal(found.branch, 'screeps-api-testing', 'branch was not set')
// Reset branch back to initial state
await api.raw.user.setActiveBranch(initialBranch.branch, 'activeSim')
})
})
describe('.deleteBranch (branch)', function() {
it('should send a request to /api/user/delete-branch in order to delete @branch', async function() {
let opts = _.omit(auth, ['username', 'password'])
let api = new ScreepsAPI(opts)
await api.auth(auth.username, auth.password)
// Delete 'screeps-api-testing' branch
let res = await api.raw.user.deleteBranch('screeps-api-testing')
assert.equal(res.ok, 1, 'incorrect server response: ok should be 1')
// Check if branch was indeed deleted
res = await api.raw.user.branches()
let found = _.find(res.list, { branch: 'screeps-api-testing' })
assert(found == null, 'branch was not deleted')
})
})
describe('.notifyPrefs (prefs)', function() {
it('should send a request to /api/user/notify-prefs which sets user preferences', async function() {
let opts = _.omit(auth, ['username', 'password'])
let api = new ScreepsAPI(opts)
await api.auth(auth.username, auth.password)
let defaults = { disabled: false, disabledOnMessages: false, sendOnline: true, interval: 5, errorsInterval: 30 }
// Save previous prefs
let res = await api.me()
let initialPrefs = _.merge(defaults, res.notifyPrefs)
// Set new preferences
let newPrefs = { disabled: true, disabledOnMessages: true, sendOnline: false, interval: 60, errorsInterval: 60 }
res = await api.raw.user.notifyPrefs(newPrefs)
assert.equal(res.ok, 1, 'incorrect server response: ok should be 1')
// Check that preferences were indeed changed
res = await api.me()
_.each(res.notifyPrefs, (value, key) => {
assert.equal(value, newPrefs[key], `preference ${key} is incorrect`)
})
// Reset preferences
res = await api.raw.user.notifyPrefs(initialPrefs)
})
})
describe('.tutorialDone ()', function() {
it('should do untested things (for now)')
})
describe('.email (email)', function() {
it('should do untested things (for now)')
})
describe('.worldStartRoom (shard)', function() {
it('should do untested things (for now)')
})
describe('.worldStatus ()', function() {
it('should do untested things (for now)')
})
describe('.code.get (branch)', function() {
it('should do untested things (for now)')
it('should send a GET request to /api/user/code and return user code from specified branch.', async function() {
let opts = _.omit(auth, ['username', 'password'])
let api = new ScreepsAPI(opts)
await api.auth(auth.username, auth.password)
let res = await api.raw.user.code.get('default')
assert.equal(res.ok, 1, 'incorrect server response: ok should be 1')
assert(_.has(res, 'modules'), 'response has no modules field')
assert(_.has(res, 'branch'), 'response has no branch field')
assert.equal(res.branch, 'default', 'branch is incorrect')
})
})
describe('.code.set (branch, modules, _hash)', function() {
it('should do untested things (for now)')
})
describe('.respawnProhibitedRooms ()', function() {
it('should do untested things (for now)')
})
describe('.memory.get (path, shard = DEFAULT_SHARD)', function() {
it('should do untested things (for now)')
})
describe('.memory.set (path, value, shard = DEFAULT_SHARD)', function() {
it('should do untested things (for now)')
})
describe('.segment.get (segment, shard = DEFAULT_SHARD)', function() {
it('should do untested things (for now)')
})
describe('.segment.set (segment, data, shard = DEFAULT_SHARD)', function() {
it('should do untested things (for now)')
})
describe('.find (username)', function() {
it('should do untested things (for now)')
})
describe('.findById (id)', function() {
it('should do untested things (for now)')
})
describe('.stats (interval)', function() {
it('should do untested things (for now)')
})
describe('.rooms (id)', function() {
it('should do untested things (for now)')
})
describe('.overview (interval, statName)', function() {
it('should do untested things (for now)')
})
describe('.moneyHistory (page = 0)', function() {
it('should do untested things (for now)')
})
describe('.console (expression, shard = DEFAULT_SHARD)', function() {
it('should do untested things (for now)')
})
})