generated at
Kozaneba開発日記2021-08-25
----


OSを再起動したので開発環境を立ち上げ直すメモ
せっかくの機会なのでローカルのディレクトリ名をmovideaからkozanebaに変更
$ code kozaneba
devserver
$ npm start
$ npx cypress open
$ firebase emulators:start
追記
$ firebase emulators:start --import firebase_emulator_data
それぞれターミナルの名前を変えておく

とりあえずテストを走らせる
Firebase authのエミュレータに入れてたユーザデータをエクスポートし忘れてたのでテスト用のアカウントにつけた名前が消えた
$ firebase emulators:export firebase_emulator_data
$ firebase emulators:start --import firebase_emulator_data
あれ、Ctrl+Cで終了したらダメだったか?起動できない
:
Check which process is occupying the port sudo lsof -i tcp:<port> Kill the process kill -9 <process id>
Firestoreエミュレータだけ生きてた
kill に -9 はなくて良い


ts
/// <reference types="cypress" /> import { ready_nested_group } from "../../support"; describe("ready nested groups", () => { beforeEach(() => { cy.visit("/#blank"); cy.viewport(500, 500); ready_nested_group(); }); it("do nothing", () => {}); });

ts
it("do nothing", () => { cy.testid("G1").then((x: any) => console.log(x[0].style.cssText)); cy.testid("G1").trigger("mousedown", 0, 0, { force: true }); cy.testid("G1").then((x: any) => console.log(x[0].style.cssText)); cy.testid("G1").trigger("mouseup", 0, 0, { force: true }); cy.testid("G1").then((x: any) => console.log(x[0].style.cssText)); });


ts
it("should not move when click", () => { cy.testid("G1").then((x: any) => { const {top, left} = x[0].style; cy.testid("G1").trigger("mousedown", 0, 0, { force: true }); cy.testid("G1").trigger("mouseup", 0, 0, { force: true }).then((x: any) => { expect(x[0].style.top).eql(top); expect(x[0].style.left).eql(left); }); }); });

---
コンテキストメニューが出ている時に座標が狂う問題、
選択範囲に関して発生するのは気づいて直したけどグループについても発生するケースがあるのか…
ドラッグ中にいじったtop/leftの値をリセットするコードがクリックの時にも発生することが原因
クリックもドラッグもmouseup/downの組み合わせで自前でやる形になったことで発生するようになったのだな
これ内部状態は変化してないので無視して他の操作をすると直るんだけど、まあ普通のユーザば表示が壊れたらそれを直そうとしていじるよね…

グループのグループにタイトルをつけようとした時のデフォルト値に孫こざねのテキストが出ない
「中のもののタイトルを繋げたものがデフォルト値」ってやってるから、タイトルのついてないグループは単なる空行になっちゃってるね

リリースノートに後で書く
グループのタイトル編集時にタイトルのついていないグループの中身もデフォルト値に含める
グループの作成と選択範囲の削除が更新とみなされておらずクラウド保存されないバグの修正
クリックしてコンテキストメニューを出した時に表示が一時的にズレるバグの修正
ローディング表示を改善

欲しい機能
場の一覧を更新順にする
場の別名保存
この時にリードオンリーにできるといい?

リードオンリーを実現するためにはFirestoreのruleをちゃんと書かなきゃだな